C++类的常用基本成员函数
2018-02-07 14:23 阴天晒得脑瓜疼 阅读(534) 评论(0) 收藏 举报C++类的常用基本函数主要包括:默认构造函数,普通构造函数,拷贝构造函数,析构函数,赋值(=运算符重载)函数
1.默认构造函数
默认构造函数是在没有显式初始值时,用来创建对象的构造函数。
定义:A(){...}
使用:A a;
2.普通构造函数
无法使用对象来调用构造函数,因为在构造函数构造出对象之前,对象是不存在的。通过编译器来调用。
定义:A(int x){...}
使用:A a(x);
3.拷贝构造函数
(用旧对象初始化新创建的新对象时,构造函数都没有返回值。参数为类对象的引用)
拷贝构造函数用于将一个对象复制到新创建的对象中。它用于初始化过程中(包括按值传递参数),而不是常规的赋值过程中。
定义:A(A&){...}
使用:新建一个对象,并将其初始化为同类现有对象时,拷贝构造函数都将被调用。
A a(b);
A *a = new A(b);
每当程序生成对象副本的时候,编译器都将使用复制构造函数。具体的说,当函数按值传递对象或者函数返回对象时,都将使用拷贝构造函数。
(使用场景,对象作为参数,对象作为返回值,运算的中间值:副本。)
4.=运算符重载
用于给类对象赋值
定义:A& operator = (A&) {...}
使用:a = b
参数要使用引用,可以避免调用拷贝构造函数创建副本,返回值为对象引用,也可以避免使用拷贝构造函数,可以使用a=b=c这种格式。
进行重载时,要检测自我赋值这种情况,避免出错。
5.析构函数
析构函数是与构造函数匹配的函数,用于对象注销。主要用于处理在构造函数中动态申请内存空间。
备注:对象作为函数参数时,使用对象引用可以避免使用拷贝构造函数。返回对象使用引用可以避免使用拷贝构造函数,但是该对象必须已经由函数外定义,传入函数内部。
在构造函数中使用new应该注意的事项:
1.在构造函数中使用new,需要在析构函数中调用delete释放
2.new和delete,new [] 和delete [] 匹配使用。
3.如果存在多个构造函数,使用new的方式要一致,因为析构函数只有一个。
4.要重载一个拷贝构造函数,进行深层次的拷贝。
5.要重载=运算符,来进行深层次的赋值。
算数运算符的重载返回值一般都为对象。
浙公网安备 33010602011771号