Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / C++拷贝构造函数

最近在复习C++的考试,对于上机中出现多的是构造函数拷贝构造函数虚函数等等接触了很多,对它们的理解逐步的加深.. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a = 100; int b = a;而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。#include <iostream> 
 using namespace std; 
 
 class CExample { 
 private: 
    int a; 
 public: 
      //构造函数 
    CExample(int b) 
    { a = b;} 
 
      //一般函数 
    void Show () 
    { 
        cout<<a<<endl; 
      } 
 }; 
 
 int main() 
 { 
    CExample A(100); 
    CExample B = A; //注意这里的对象初始化要调用拷贝构造函数,而非赋值 
    B.Show (); 
    return 0; 
 } 运行程序,屏幕输出100。从以上代码的运行结果可以看出,系统为对象 B 分配了内存并完成了与对象 A 的复制过程。就类对象而言,相同类型的类对象是通过拷贝构造函数来完成整个复制过程的。
 
下面举例说明拷贝构造函数的工作过程。#include <iostream> 
 using namespace std; 
 
 class CExample { 
 private: 
    int a; 
 public: 
    //构造函数 
    CExample(int b) 
    { a = b;} 
     
    //拷贝构造函数 
    CExample(const CExample& C) 
    { 
        a = C.a; 
    } 
 
    //一般函数 
    void Show () 
    { 
        cout<<a<<endl; 
    } 
 }; 
 
 int main() 
 { 
    CExample A(100); 
    CExample B = A; // CExample B(A); 也是一样的 
      B.Show (); 
    return 0; 
 } CExample(const CExample& C) 就是我们自定义的拷贝构造函数。可见,拷贝构造函数是一种特殊的构造函数,函数的名称必须和类名称一致,它必须的一个参数是本类型的一个引用变量。