c++之头文件,基本输出,输入,名字空间,引用,内联函数,函数重载,缺省参数
文章目录
c++之头文件,基本输出,输入,名字空间,引用,内联函数,函数重载,缺省参数前言一、头文件,基本输出,输入1.基本头文件(输出输入流头文件)2.标准输出输入 二、名字空间namespace定义,嵌套,使用三、引用:给变量取别名四、内联函数五、函数重载六、缺省参数总结前言
学习c++之头文件,基本输出,输入,名字空间,引用,内联函数,函数重载,缺省参数
一、头文件,基本输出,输入
1.基本头文件(输出输入流头文件)
#include <iostream>//io流
c++的头文件和c语言的不太一样,但是c++兼容c语言的头文件
对比:
c++中c语言中<cstdio><stdio.h><cstdlib><stdlib.h><cstring><string.h>在c++中没有.h拓展名,都是在前面加c,最前面都是#include
2.标准输出输入
在c++中都是以流的形式输出和输出标准输出cout<<标准输入cin>>注意箭头方向不同例:int main(){int a = 10;int b;cout << "nice to meet you " <<" "<< a <<endl;//双引号里面的会原样输出,输出变量会替换成变量的值,endl是换行符cin>>b;//从键盘输入一个数}
二、名字空间namespace定义,嵌套,使用
A.如何定义一个名字空间namespace 名字空间名相当于一个空间,限定了作用域。例:namespace student{1.定义变量int a;2.定义常量const int a;3.定义结构体struct student{int age;char name[10];}4.定义函数void show(){cout<< "你是大帅比!"<< endl;}}B.嵌套:名字空间可以嵌套namespace da{int age;void show(){cout<< "你是大帅比!"<<endl;}namespace xiao{int id;}}C.使用:第一种:全部引用using namespace da;第二种:部分引用using namespace::age;第三种:使用域调用int main(){xiao::show();}补充:引用空间小using namespace da::xiao;int main(){在使用的地方外面使用using namespace 名字空间名}
三、引用:给变量取别名
1.不使用引用 void swap(int a,int b){int temp;temp = a;a = b;b = temp;}上面只是交换了形式参数,实际main函数里面的参数没有改变,形式参数只有在调用函数的时候,才会在内存开辟一个空间,定义两个临时变量来进行操作;而以前c语言的方法是传地址;2.使用引用void swap(int& a,int& b){int temp;temp = a;a = b;b = temp;}在这个demo中,相当于给传进来的第一个参数取别名a,第二个取别名b,相当于外号一样,别人叫大帅比是你,别人叫帅哥也是你,大帅比是你本来的名字,相当于实际参数,帅哥是取的别名,但是实际上还是你
**************************引用和指针的区别(面试必会):
引用必须初始化,指针不一定
引用不占用内存空间,指针占用内存空间
引用一旦初始化就不能修改,指针可以改变指向
有指针的引用,没有引用的指针
有空指针,没有空引用
四、内联函数
内联函数:在返回值类型前面加inline ,例如 inline void show(){}作用:在c++中,某个函数被频繁的调用,就需要不断的出栈入栈,加inline内联函数,会直接把inline的函数拷贝到调用的地方,就不需要跳转到main函数外面的函数去运行。减少消耗(以空间换时间的做法);1.void show(){cout<< "你是大帅比"<<endl;}运行两千万次:大约0.003秒2.inline void show(){cout<< "你是大帅比"<<endl;}运行两千万次:大约0.001秒3.如何查看运行时间:time ./a.out4.限制:内联函数中不能有循环,不能有switch case行数一般小于10行,大多在5行左右,如果达不到内联的要求,尽管加了inline,也不会按照内联处理注意:c++类中,函数默认内联(达不到要求也不会内联)
五、函数重载
定义:在同一作用域下,函数名相同,参数列表不同
参数列表不同分为:
个数不同:
顺序不同;
类型不同;
作用:减少用户的调用复杂性
调用一个函数实现不同效果
减少函数名的数量,防止名字污染
例子;
1.个数不同void show(int a)void show(int a,int b)2.顺序不同void show(int a,double b)void show(double a,int b)3.类型不同void show(int a)void show(double a)注意:返回值类型不同,其他相同不构成重载int show(int a)void show(int a)这个不构成重载特殊重载:const int show()int show()这个构成重载
六、缺省参数
就是在定义函数的时候,给形式参数一个默认值
class person{public:int add(int a=10,int b=20){cout<<a<<b<<endl;}}int main(){add();此时,我不给函数传入实参时,系统就会用定义的时候赋的初始值,结果打印出来是10,20}
总结
有点懒不想写