C++入门基础知识:类和引用
一.类(类的6个默认函数)、对象、面向对象等概念
网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了灞桥免费建站欢迎大家使用!
1.cpp的数据类型(除去C中的)
基本数据类型:bool型 逻辑型 非基本型:类 class
void型 无类型
【1】命名空间(为了解决全局变量命名冲突的问题)
例:#include
using namespace std; //标准输入输出流,命名空间为std
int main()
{
cout<<''hello world''< system('''pause'); return 0; } 可以随时向命名空间添加定义,但是都定义在同一命名空间 例:#inlcude namespace bit1 //定义一个命名空间 { int a=0; } namespace bit2 //定义另一个命名空间 { int a=20; } int main() { bit1::a=30; //::为作用域解析符 bit2::a=40 } 2.输入/输出 流 cout →标准输出流对象,<<输出操作符; cin→标准输入流对象,>>输入操作符; endl→标准换行操作符; 3.函数重载 例:#include using namespace std; int add(int num1,int num2) { return num1+num2; } float(float f1,float f2) { return f1+f2; } int main() { int num1=0; int num2=0; float f1=0.0; float f2=0.0; cin>>num1>>num2; int ret=add(num1,num2); cout<<"ret="< cin>>f1>>f2; float f3=add(f1,f2); } 注意:【1】在同一作用域内,一组函数名相同,参数列表<个数/类型不同>不同,返回值类型可同可不同。 【2】判断函数是否重载时,只需要判断其函数名和参数列表是否相同即可。 【3】在c和cpp中,函数重载的规则不一样,所以在cpp中使用c的函数时要用extern ”c“。 4.缺省函数 【1】全缺省函数 例;int add1(int a,int b) { return a+b; } int main() { int ret=add1(); //此处可以不用写参数,若将其改为add1(3),则结果为3,原因是参数是从左往右填充的 return 0; } 【2】半缺省函数 例:int add2(int a,int b=0) 二.指针与引用 引用的概念:【1】不是定义一个新的变量,而是给一个已经定义的变量赋予一个新的名字,且该变量可以被多次引用,即一个变量可以有多个别名; 【2】引用要进行初始化,要明确谁是谁的别名; 【3】引用可以传递,例如&q=m;&r=q; 【4】一个别名只能引用一个变量 1.const引用 例:#include using namespace std; int main() { int *q=NULL; const int *p=q; int m=10; const int &n=m; //常引用,此时的n作为一个常量对待,不能直接修改n,只能通过修改m来修改 return 0; } 注意:【1】不能将一个const修饰的变量赋给一个非const修饰的变量 【2】不能将一个常量直接引用,除非加上const,如const int &r=5 例:double b=3.14; const int &k=b; 【3】在代码执行过程中,中间变量<临时>为常属性,则要用const来修饰。 2.引用用在函数参数中 例:#include using namespace std; int swap(int *a,int *b) //传指针的方式交换两个变量的值 { int tmp=*a; int *a=*b; *b=tmp; } 对于swap函数而言,还有另一种方法就是利用引用 例:void swap(int &a,int &b) { int tmp=a; a=b; b=tmp; } int main() { int a=10; int b=20; swap(a,b); return 0; } 3.常引用传参(当不希望函数内改变参数X的值的时候) 例:void ReadBigData(const BigData &x) { int a=x.arr[1000]; } 注意:返回值作为引用的时候,不能引用一个临时变量 例:int fun() { int ret=10; return ret; //这里返回了一个临时变量,最好不要这样写 } 4.值返回和引用反汇编 【1】值返回:将ret中的值放到eax寄存器中 汇编语言:Mov eax,dword ptr[ret]; 【2】引用反汇编:将ret的地址放到eax中,和指针一样 汇编语言:Lea eax,[ret]; 例:#include using namespace std; ①int add(int a,int b) { int ret=a+b; return ret; } ②int *add() { int ret=a+b; return &ret; } ③int &add(int a,int b) { int ret=a+b; return ret; } 以上三个add函数的功能是一样的。 引用和指针的区别和联系: 1.引用只能开始的时候初始化一次,后面便不能再指向其他变量; 2.引用必须指向有效变量,而指针可以为空; 3.sizeof引用指的是引用对象的大小,sizeof指针指的是对象地址的大小; 4.指针和引用的自增或自减的意义不一样; 5.相对而言,引用比指针更安全;
网站名称:C++入门基础知识:类和引用
浏览路径:http://azwzsj.com/article/pghigj.html