C++入门

来源:互联网 发布:c语言编程器下载 编辑:程序博客网 时间:2024/05/01 15:09

1.命名空间

在基本的C++程序里面,在#include语句之后会有一句“using namespace std;”,意思是使用“std”这个命名空间,把std里面的对象(如cout、endl)变为全局对象,可以直接使用。若没有“using namespace std;”,则需要通过“std::cout”来使用。“::”叫做域访问符,用于访问命名空间。


命名空间也看可以自己定义,如:

namespace MY

{

int a = 0;

}

则可以通过“MY::a”来使用,或者先“using namespace MY;”把MY命名空间里面的对象变为全局对象,然后直接用“a”来调用。


2.基本的输入输出流

C++标准使用的输入输出流跟c语言不一样,是在“iostream”头文件里面的cout和cin,而搭配使用的是输出符“<<”和输入符“>>”,如:

{

int a = 0;

cin >> a;//用户输入a的值

cout << a << endl;//输出a的值并换行

}

当然,在c++里也可以使用c语言stdio.h头文件里面的printf和scanf函数。


3.重载

C++是支持函数重载的,如:

void fun(int a, int b){}

void fun(float a, float b){}

两个函数参数不同,但函数名相同的函数能够同时存在。


但是c语言却不支持函数重载,因为在c语言中,编译后函数名会变成_fun,跟参数无关。但是在C++中编译后函数名会变成“_fun_int_int”和“_fun_float_float”,所以两个可以同时存在。


4.缺省参数

C++中,函数的参数可以缺省,如:

int Add(int a = 10, int b = 20){}//全缺省参数函数…………①

int Add(int a, int b = 20){}//半缺省参数函数…………②

以下定义是错的:

int Add(int a = 10, int b){}//半缺省只能从右边开始


可以用以下方式调用①

Add(); //全缺省调用,用默认值

Add(1); //半缺省调用,a用1,b用默认值

Add(1, 2); //正常调用

但不能用以下方式调用①
Add(, 2); //只能从左边的数开始赋值


可以用以下方式调用②

Add(1);

Add(1, 2);

但不能用以下方式调用②

Add();//因为a一定要传参


5.引用

{

int a = 10;

int& b = a;//给a起一个别名,而不是“取地址”

printf("%d\n", a);//输出10

printf("%d\n", b);//输出10

a = 20;

printf("%d\n", a);//输出20

printf("%d\n", b);//输出20

b = 30;

printf("%d\n", a);//输出30

printf("%d\n", b);//输出30

}

引用定义时必须初始化,定义后不能再赋值一次。

引用后,无论对引用变量赋值还是对原变量赋值,都会对两个值同时修改。

{

const int a = 10;

int& b = a;//编译不通过

}

{

const int a = 10;

const int& b = a;//编译通过

}


void Swap(int& a, int& b)

{

int c = a;

a = b;

b = c;

}

可以不用指针,用引用,使用指针要验空。

原创粉丝点击