interestingna先从我们都熟悉的hello world开始
#includeusing namespace std; int main() { cout<<"hello wolrd"< 在使用cout这个标准输出函数前我们需要引入这个函数和头文件,很多人对此表示不解我为什么要引入这个俩个东西呢?这里我们将层层解释,首先包含的头文件是c++的标准库,里面的函数啊可能用命名空间封装起来,而c++标准的库函数就是在std,这个命名空间下的 用using 来解放这个std里面的标准库函数,ok,很多人听到这里还是一脸懵逼到底什么是命名空间呢?我会用文字加代码加图示的方法来带大家理解:
看图:
代码角度:
可以发现编译器并没有找到a,我们用using 关键字将他释放
这时候发现并没有任何问题 ,我们需要注意的是将命名空间打开后里面的a就没有限制了,如果我们在外部定义变量了a,那么就会重定义。
namespace f { int a; int b; } int b; using f ::a; 这样我就只将我们想要的变量放出来了 // ::为作用域限定符,前面若是空白就表示作用域是全局,是f就表示作用域是f; //命名空间里面可以定于变量可以定义结构体可以定义函数,也可以嵌套使用 //例如: namespace myspace { int add(int a,int b) { return a+b; } namespace yourspace { int sub(int a,int b) { return a-b; } } } 如何使用sub函数呢我们要先进入MySpace再进入yourspace using namespace myspace ::yourspace::sub;这种写法是错误的 注意 namespace 后面只能跟命名空间名 ; 正确的写法: using namespace myspace; using yourspace::sub;2.C++的标准输入输出
函数cin,cout这里的c是控制台的简写,用法:
##includeusing namespace std; //为什么要加这俩段代码上文已经提过 int main() { int a=1; int b=2; int x; cin>>x;//从标准输入流读进x; cout< 于pringf相比cout,cin不需要给出参数的类型更加方便; >>,<<分别是流插入和流提取运算符
,相同的命名空间会合并
3.缺省参数
什么叫缺省参数呢?:定义函数的参数时同时给这个参数赋值,这个参数就叫缺省参数int f(int a=10,int b=10,int c=10); //这叫全缺省参数, 半缺省参数: //int f(int a,int b=10,int c=20); //半缺省参数必须从右向左依次给出不能间着给;缺省参数的定义和声明不同给出,不然会产生歧义,编译器不知道用哪个的默认值,若有声明必须在声明中给出缺省参数因为编译器在语法检查阶段要保证能通过;你只有函数的声明,现在没用传参当然会报错
假设我又一个头文件叫点test.h 里面放了一个函数的定义这个函数明叫f那么 在未链接前, 编译器至少得保证你的编译能过, int main() { f(); }4.函数重载,听名字很酷,这里简单说一下,函数的重载是指同名但参数不同的函数,这里的不同指:参数的类型不同,参数的顺序不同,参数的个数不同;
1,int f(int a,int b) 2,int f(int a,int b,int c) 3,int f(int a,double b); 4,int f(double a,int b); 5,int f(double a,double); 其中1,2属于个数不同,3,4属于顺序不同,1,3属于类型不同,1,5也属于类型不同



