C++构造函数(复制构造函数)

1、默认构造函数(默认值)构造函数的作用:初始化对象的数据成员。

2、复制构造函数

3、运算符重载

4、深拷贝

5、浅拷贝

class Person
{
  private:
      int nAge;        //年龄
      double dbHeight;  //身高
      char *name;       //姓名
public:
    //1、默认构造函数(无参)
    /*
    1、如果创建一个类没有任何构造函数,则系统会自动生成一个默认的无参构造函数,函数体为空;
    2、如果存在一个构造函数,系统就不会生成一个默认的构造函数,如果希望有一个无参的构造函数,则需要手动添加。
    3、只允许有一个默认构造函数
    */
    Person()
    {
        nAge = 18;
        dbHeight = 165;
        name = new char[100];
    }
    //2、默认构造函数(默认值参数)
    /*Person(int nAge = 16, double dbHeight = 175)
    {
        this->nAge = nAge;
        this->dbHeight = dbHeight;
    }*/
    //3、复制构造函数(也称为拷贝构造函数)
    /*
    1、复制构造函数参数为类对象本身的引用,根据已存在的对象复制出一个新的该类的对象,通常在函数中将已存在对象的数据成员的值复制一份到新创建的对象中;
    2、类中若没有显示的写复制构造函数,则系统会默认创建一个复制构造函数,但当类中有指针成员时,由系统创建的该默认构造函数会有风险(深拷贝和浅拷贝);
    */
    /*Person(const Person & p)
    {
        nAge = p.nAge;
        dbHeight = p.dbHeight;
    }*/
    ~Person()
    {
        delete name;
    }
};

猜你喜欢

转载自www.cnblogs.com/dingou/p/10269744.html