目录
一、命名空间
二、C++输入输出
三、缺省参数
一、命名空间
在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。
命名空间的定义:
namespace N1 // N1为命名空间的名称
{
// 命名空间中的内容,既可以定义变量,也可以定义函数
int a;
int Add(int left, int right)
{
return left + right;
}
}
可以定义函数、变量 。
也可以嵌套定义:
namespace N2
{
int a;
int b;
int Add(int left, int right)
{
return left + right;
}
namespace N3 //嵌套定义
{
int c;
int d;
int Sub(int left, int right)
{
return left - right;
}
}
}
再定义时,也可以定义重复的名称,所定义的相同名称在编译最后会合成同一个命名空间。
注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。
命名空间的使用:
例:
namespace N
{
int a = 10;
int b = 20;
int Add(int left, int right)
{
return left + right;
}
int Sub(int left, int right)
{
return left - right;
}
}
int main()
{
printf("%dn", a); // 该语句编译出错,无法识别a
return 0;
}
运行这段代码会直接报错。如果我们要调用a,则需要配合使用 std:: (空间名称+::,::作用域限定符).
也可以使用:
using N::a;
将命名空间中的a释放出来,在后面的调用就不需要加 N:: 了。
也可以使用:using namespace +空间名
using namespace N;
直接释放N中存在的所有函数、变量。
二、C++输入输出
先来分析一下这段代码:
输出:
#includeusing namespace std; int main() { cout<<"Hello world!!!"< 直接打印出 hello word!!!
分析:#include
是头文件,包含输入输出等关键字,相当于#include 头文件。cout<<" "< 如:
#includeusing namespace std; int main() { int a = 100; cout << a << endl; return 0; } 可以直接输出a的值,后面的 endl 相当于换行符。
输入:
符号:cin>> 变量名 ;
与cout用法相识,不需要使用%d %c等格式控制。
#includeusing namespace std; int main() { int a = 100; cin >> a; cout << a << endl; return 0; } //如果输入多个变量,直接加 >> //如:cin >> a >> b >> c >> d;//可以同时对a,b,c,d进行输入
三、缺省参数
对于缺省参数,你可以理解为“ 备胎 ”的意思。在声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参。
void TestFunc(int a = 0) { cout<
缺省参数可以分为:全缺省参数,半缺省参数
全缺省参数:每个参数都赋值
void TestFunc(int a = 10, int b = 20, int c = 30) { cout<<"a = "<半缺省参数:只部分赋值
注意的是:1. 半缺省参数必须从右往左依次来给出,不能间隔着给
2. 缺省参数不能在函数声明和定义中同时出现3. 缺省值必须是常量或者全局变量
4. C语言不支持(编译器不支持)void TestFunc(int a, int b = 10, int c = 20) { cout<<"a = "<



