C++入门知识(一)
一、#命名空间 在C/C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染namespace关键字的出现就是针对这种问题的。 1.命名空间的定义 定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。
//1.普通命名空间
namespace N1//N1为命名空间的名称
{
// 命名空间中的内容,既可以定义变量,也可以定义函数
int a = 10;
int Add(int left, int right)
{
return left + right;
}
namespace N2 //2.命名空间中还可以再命名
{
int c = 10;
int max(int x, int y)
{
if (x > y)
{
return x;
}
else
return y;
}
}
}
//3. 同一个工程中允许存在多个相同名称的命名空间
// 编译器最后会合成同一个命名空间中。
namespace N1
{
int max(int x, int y)
{
if (x > y)
{
return x;
}
else
return y;
}
}
一个命名空间定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中 2.命名空间的使用
①命名空间名称::变量
int main()
{
printf("%d", N1::a);
system("pause");
return 0;
}
②using namespace 命名空间名称
//using namespace N1;
③using 命名空间名称::变量
using N1::a;
int main()
{
printf("%d", a);
system("pause");
return 0;
}
二、C++输入&&输出 说明: 1. 使用cout标准输出(控制台)和cin标准输入(键盘)时,必须包含< iostream >头文件以及std标准命名空间。 2. 使用C++输入输出更方便,不需增加数据格式控制
#include<iostream>
using namespace std;
namespace N1
{
int a =10;
}
using namespace N1;
int main()
{
int b=0;
cin>>b>>endl;
cout<<a<<endl;
cout<<b<<endl;
return 0;
}
输出结果:
三、缺省参数 1.什么是缺省参数? 在声明函数的某个参数的时候为之指定一个默认值,在调用该函数的时候如果采用该默认值,你就无须指定该参数。 2.缺省参数使用规则 ①带缺省值的参数必须放在参数表的最后面。 ②缺省值必须是常量。 ③缺省参数必须通过值参或常参传递。 例:
#include<iostream>
using namespace std;
int sum(int a = 1, int b = 1, int c = 1)
{
return (a + b + c);
}
int main()
{
cout << sum() << endl;
cout<<sum(10)<<endl;
cout<<sum(10, 8)<<endl;
cout << sum(10, 8, 6) << endl;
system("pause");
return 0;
}
输出结果为:
当不传入实参是就用缺省函数中的数据进行运算。 四、函数重载 1.什么是函数重载? C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个函数完成不同的功能。 2.两个重载函数必须在下列一个或两个方面有所区别: ①函数的参数个数不同。 ②函数的参数类型不同或者参数类型顺序不同。 例:
#include<iostream>
using namespace std;
int sum(int a = 1, int b = 1, int c = 1)
{
return (a + b + c);
}
int add(int a, int b)
{
return (a + b);
}
double add(double a, double b)
{
return (a + b);
}
int main()
{
cout << add(10, 8) << endl;
cout << add(10.8, 8.2) << endl;
system("pause");
return 0;
}
输出结果为:
两个函数名定义一致,接收实参类型不同,所以会选择不同的函数进行运算。
- 如何求最小三元组距离
- 如何将Pastebin上的信息应用于安全分析和威胁情报领域
- Optionsbleed 漏洞泄露 Apache Server 的内存信息
- 对两个有序数组进行合并
- No.016 3Sum Closest
- Java中实现解码字符串的方法,实用代码
- PDF.NET SOD 开源框架红包派送活动 && 新手快速入门指引
- No.015 3Sum
- Java 8新特性——提供了一种可以看作多重继承的默认方法
- WebSocket 学习笔记--IE,IOS,Android等设备的兼容性问题与代码实现
- 关于Shell你想知道的都在这儿
- Java中使用线程时,请不要忘记Spring TaskExecutor组件
- 常见.NET功能代码汇总
- 如何通过追踪代码自动发现网站之间的“关联”
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android使用URLConnection提交请求的实现
- android原生JSON解析实例
- iOS新闻类App内容页技术探索
- Android仿iphone自定义滚动选择器
- Android仿iPhone日期时间选择器详解
- Android 仿余额宝数字跳动动画效果完整代码
- Android中判断listview是否滑动到顶部和底部的实现方法
- Android开发实现的简单媒体播放器功能示例
- Android中的颜色表示的详解
- android使用SoundPool播放音效的方法
- android中Context深入详解
- Android中Notification通知用法详解
- Android build文件的删除的方法
- Android自定义Notification添加点击事件
- 深入理解Android Bitmap