C++中如何使用类对象构造函数,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
对于普通类型的对象来说,他们之间的复制是很简单的,自己定义的类的对象同样是对象,谁也不能阻止我们用以下的方式进行复制,例如:
include <iostream> using namespace std; class Test { public: Test(int temp) { p1=temp; } protected: int p1; }; void main() { Test a(99); Test b=a; }
普通对象和类对象同为C++类对象,他们之间的特性有相似之处也有不同之处,类对象内部存在成员变量,而普通对象是没有的,当同样的复制方法发生在不同的对象上的时候。那么系统对他们进行的操作也是不一样的,就类对象而言,相同类型的类对象是通过拷贝构造函数来完成整个复制过程的,在上面的代码中。
#include <iostream> using namespace std; class Test { public: Test(int temp) { p1=temp; } Test(Test &c_t)//这里就是自定义的拷贝构造函数 { cout<<"进入copy构造函数"<<endl; p1=c_t.p1;//这句如果去掉就不能完成复制工作了,此句复制过程的核心语句 } public: int p1; }; void main() { Test a(99); Test b=a; cout<<b.p1; cin.get(); }
我们并没有看到拷贝构造函数,同样完成了复制工作,这又是为什么呢?因为当一个类没有自定义的拷贝构造函数的时候系统会自动提供一个默认的拷贝构造函数,来完成复制工作。
下面,我们为了说明情况,就普通情况而言(以上面的代码为例),C++类对象来自己定义一个与系统默认拷贝构造函数一样的拷贝构造函数,看看它的内部是如何工作的! 上面代码中的Test(Test &c_t)就是我们自定义的拷贝构造函数,拷贝构造函数的名称必须与类名称一致,函数的形式参数是本类型的一个引用变量,且必须是引用。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。