今天同事问了一个关于拷贝构造函数的问题,类中包含指针的情况,今天就来说说c++的拷贝构造函数。
c++的拷贝构造函数是构造函数的一种,是对类对象的初始化,拷贝构造函数只有一个参数就是本类的引用。
注意,默认构造函数(即无参构造函数)不一定存在,但是拷贝构造函数总是会存在。
下面是一个拷贝构造函数的例子。
[url=][/url]
1 #include<iostream> 2 using namespace std; 3 class A{
4 public: 5 int a; 6 A(int value){
7 a = value; 8 } 9 void show(){
10 cout<<a<<endl;11 }12 }; 13 int main(){
14 A test_a(10);15 test_a.show();16 17 A test_b(test_a);18 test_b.show();19 20 return 0;21 }[url=][/url]
输出结果为:
1010
如果编写了拷贝构造函数,则默认拷贝构造函数就不存在了。下面是一个非默认拷贝构造函数的例子。
[url=]