您的位置:首页 > 编程语言 > C语言/C++

c++

2018-03-17 21:06 85 查看
1.c++的命名域
  名字空间域是随标准c++而引入的。它相当于一个更加灵活的文件域(全局域),可以用花括弧把文件的一部分括起来,并以关键字namespace开头给它起一个名字
 例:namespace name1{
    int a=0;}
namespace name2{    int a=1;}  标准c++库中的所有组件都是在一个被称为std的名字空间中声明定义的,在采用标准c++的平台上使用标准c++库中的组件,只要写一个using指示符:
using namespace std;
  就可以直接使用标准c++库中的所有成员;或者std::成员的方式使用c++库里的成员。(::是作用域解析符)
#include<iostream>//c++库的头文件
#include<stdlib.h>//syztem的头文件
using namespace std;//std 是c++标准库的名字空间
namespace my//创建一个为my的名字空间
{
int a = 100;
}
namespace you//创建一个为you的名字空间
{
int a = 90;
}
int a = 80;//存在于std中
void main()
{
int a = 70;
printf("%d %d %d %d\n", a, ::a, my::a, you::a);//(::a)没有指明命名域则为全局命名域中
system("pause");
return;
}

打印结果:70 80 100 90

也可以修改命名域中的值
#include<iostream>//c++库的头文件
#include<stdlib.h>//syztem的头文件
using namespace std;//std 是c++标准库的名字空间
namespace my//创建一个为my的名字空间
{
int a = 100;
}
namespace you//创建一个为you的名字空间中创建一个为my1的名字空间
{
namespace my1
{
int a = 90;
}
}
void main()
{
my::a = 10;
you::my1::a = 9;
std::cout << my::a    << you::my1::a << endl;
system("pause");
return;
}

打印结果:10    9  
cout是标准输出流对象,<<是输出操作符
cout是标准输入流对象,>>是输出操作符

endl是换行操作符;
他们都属于c++标准库,所以都在std的名字空间里面
2.c++重载函数

什么是重载函数:在同一作用域内,一组函数的函数名相同,参数列表不同,返回值可以相同也可以不同。
使用重载函数需要满足以下任意条件


参数个数不同


参数类型不同


#include<iostream>//c++库的头文件
#include<stdlib.h>//syztem的头文件
using namespace std;//std 是c++标准库的名字空间
void func(int i)
{
cout << i << endl;
}
void func(int i,double j)
{
cout << i <<"   "<<j<<endl;
}
void func(double j,int i)
{
cout << i  << "   "<< j << endl;
}
void main()
{
func(2);
func(4.0, 4);
func(3, 3.0);

system("pause");
return;

}
打印结果:
2
4   4
3   3
为什么c++支持重载c不知处重载?

答:c和c++函数名在汇编中的修饰不同,即在返汇编时c中的函数名是什么就是什么然而c++会有函数名的变化。
              c++                                         c





 3.缺省参数  
#include<iostream>
#include<stdlib.h>//syztem的头文件
using namespace std;
int Add1 (int a=0, int b=0)//全缺省参数
{
return a + b;
}

int Add2(int a, int b = 0)//半缺省参数(半缺省只能缺省右边的并且是连续的)
{
return a + b;
}
void main()
{
cout << Add1() << endl;
cout << Add1(2) << endl;
cout << Add1(2,2) << endl;
cout << Add2(3) << endl;
cout << Add2(3,3) << endl;
system("pause");
return;
}
打印结果:
0
2
4
3
6
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息