第四周复制构造数引用.pptVIP

  • 2
  • 0
  • 约6.6千字
  • 约 32页
  • 2019-02-24 发布于江苏
  • 举报
* 若不定义拷贝构造函数: void main(void) { CA s1(China!); CA s2(s1); //A couts1=s1.GetS()\t; couts2=s2.GetS()\n; } 则使用系统自动产生的 复制构造函数: CA::CA(CA s) { ps=s.ps; } * 使用自定义复制构造函数 CA::CA(CA s) { if(s.ps){ //如果s中的成员数据非空的话 ps=new char[strlen(s.ps)+1]; //为当前对象的成员数据动态分配存储空间 strcpy(ps,s.ps);//将s中的成员数据拷贝给当前对象成员数据 } else ps=0; } s1=China! S2=China! * 构造函数和析构函数 1、构造函数:类的特殊成员函数,主要用于初始化对象。 其特点: 1)在建立对象时,系统自动调用构造函数,构造函数不能被程序员显式调用。 2)构造函数的名字必须与相应的类同名。 3)构造函数没有返回值类型,可以有任意类型的参数。不能包含return语句。 4)若在定义类时未定义构造函数,则系统自动生成默认构造函数(空函数)。 若程序已经定义构造函数,系统不再提供默认构造函数 * 构造函数的作用 不仅完成了对象数据成员

文档评论(0)

1亿VIP精品文档

相关文档