1.拷贝构造函数是与类名相同,其形参是本类的对象的引用。

2.拷贝构造函数会在以下三种情况下被调用:

1).当用类的一个对象去初始化该类的另一个对象时。

2).如果函数的形参是类的对象,调用该函数,将对象作为函数实参传递给函数的形参时。

3).如果函数的返回值是类的对象,函数执行完成,将返回值返回时。

3.浅拷贝的失败例子:

 1 #include <iostream>
 2 #include <cstring>
 3 
 4 using namespace std;
 5 
 6 
 7 class str
 8 {
 9 private:
10     char *s;
11     int len;
12 public:
13     str()
14     {
15         len=0;
16         s=NULL;
17     }
18     str(const char *p)
19     {
20         len=strlen(p);
21         s=new char[len+1];
22         strcpy(s,p);
23     }
24     ~str()
25     {
26         if(s!=NULL)
27         {
28             delete []s;
29             s=NULL;
30         }
31     }
32 };
33 
34 int main()
35 {
36     str s1("I love you!");
37     str s2=s1;  //这里会发生错误。
38     return 0;
39 }
View Code

相关文章:

猜你喜欢
  • 2021-11-07
  • 2021-07-23
  • 2021-11-04
  • 2021-08-18
  • 2022-01-01
相关资源
相似解决方案