
- 命名空间
- C++的输入和输出
- C++的缺省(默认)参数
- 函数重载
命名空间的概念:在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将
都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名污染,namespace关键字的出现就是针对这种问题的
例如下面这个程序:
#include
#include
int rand = 0; //rand()是随机数生成的函数
int main()
{
printf("%d\n", rand);
return 0;
}
命名空间的定义
//普通的命名空间
namespace chen1
{
int a = 0;
int b = 1;
int Add(int x, int y)
{
return x + y;
}
}
//命名空间可以嵌套
namespace chen2
{
int a = 5;
int b = 10;
int Sub(int x, int y)
{
return x - y;
}
namespace chen3
{
int a = 100;
int b = 200;
}
}
//命名空间是可以同名的,编译器最后可以合成到同一个命名空间中
namespace chen1
{
char ch = 'c';
}
如何使用命名空间呢?
方法1:加命名空间名称(例如上面的chen1,chen2)和作用域限定符(::)
int main()
{
//printf("%d\n", a); // 这里会报错
printf("%d\n", chen1::a); //正确使用方式
return 0;
}
方法2:使用using关键字将命名空间中的成员引入
using chen1::b; //可以理解为用using将命名空间chen1中的b放出来
int main()
{
printf("%d\n", chen1::a);
printf("%d\n", b);
}
方法3:直接将命名空间引用
using namespace chen1; //就是将命名空间chen1放出来
int main()
{
printf("%d\n", a);
printf("%d\n", b);
printf("%d\n", Add(1, 2));
return 0;
}
C++的输入和输出
cout 是标准输出(控制台)
cin 是标准输入 (键盘)
使用必须包含头文件 <>和放出标准命名空间std
#include
using namespace std;
int main()
{
cout << "hello world" << endl; //endl 就是换行符'\n'
cout << "hello world" << '\n';
}
C++是没有格式输入输出的控制的 例如 %d,%f等等
int main()
{
int a = 0;
double d = 0;
cin >> a >> d;
cout << a<<' ';
cout << d<<endl;
return 0;
}
C++的缺省(默认)参数
可以把这个想象成备胎-----哈哈哈哈
如果传参了,就使用传参的值。
全缺省参数:
这个test1就是,意思就是全部缺省(默认)
void test1(int a = 10, int b = 20, int c = 30)
{}
int main()
{
test1();
return 0;
}
半缺省参数:这个就是部分缺省,但是要注意一下,只能从右向左缺省,不能间隔
void test2(int a, int b = 2, int c = 3)
{
cout << a << b << c << endl;
}
int main()
{
test2(1); //因为a不是缺省,所以至少传一个值
return 0;
}
函数的声明和定义不能同时缺省,即使缺省的参数值相同
下面仍旧会报错
//.h头文件中
void test4(int a = 10);
//.cpp源文件
void test4(int a =10 )
{
cout << a << endl;
}
声明缺省,定义不缺省是正确的
//.h头文件中
void test4(int a = 10);
//.cpp源文件
void test4(int a )
{
cout << a << endl;
}
这个定义的缺省没有意义,因为调用的时候必须传值(全缺省)
//.h头文件中
void test4(int a );
//.cpp源文件
void test4(int a = 10)
{
cout << a << endl;
}
函数重载
什么是函数的重载?
C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的
形参列表(参数个数 或 类型 或 顺序)必须不同
正确的重载
int Add(int x, int y)
{
return x + y;
}
double Add(double x, double y)
{
return x + y;
}
int Add(int x, double d)
{
return 1;
}
int Add(double x, int d)
{
return 1;
}
错误的重载
int Add(int x, int y)
{
return x + y;
}
int Add(int y, int x)
{
return x + y;
}
short Add(short left, short right)
{
return left + right;
}
int Add(short left, short right)
{
return left + right;
}
如何快速理解重载?
很简单,只要输入的时候,因为类型,顺序,个数这些原因
会调用一 一对应的函数就是重载
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)