创建类Dog 成员变量name age 。大家完成该类的定义,该类包含构造函数,拷贝构造函数和析构函数。
拷贝构造函数作用就是利用该类的一个对象是初始化另一个该类的对象。
拷贝构造函数是一种特殊的构造函数
字符串类型有三种表示方式:字符数组,string,字符指针
字符数组可以存放字符串也可以存放字符,区别是什么? 通过最后一个字符结束是否有 \0 符号
代码演示:
#include <iostream>
using namespace std;
class Dog{
public:
Dog(string name,int age);//构造函数
Dog(const Dog& another);//拷贝构造函数
void show();//方法
~Dog();//析构函数
private:
string name;
int age;
};
Dog::Dog(string name,int age){//构造函数
cout<<"调用构造函数"<<endl;
this->name = name;
this->age = age;
}
Dog::Dog(const Dog& another){//拷贝构造函数
cout<<"调用拷贝构造函数"<<endl;
name = another.name+"拷贝";
age=another.age+10;
}
void Dog::show(){//方法
cout<<name<<" "<<age<<endl;
}
Dog::~Dog(){//析构函数
cout<<"调用析构函数"<<endl;
}
int main(int argc, const char * argv[]) {
Dog d("zhangsan",28);
d.show();
Dog d2(d);
d2.show();
cout<<true<<endl;
return 0;
}
运行结果:
![](https://i-blog.csdnimg.cn/blog_migrate/c5ea9f222b5f756b1b334a05eb79e99d.png)