#include <iostream>
#include <cstring>
using namespace std;
class Father
{
public:
int *p;
string name;
Father():p(new int()){}
Father(int p,string name):p(new int(p)),name(name){}
Father(const Father &other):name(other.name),p(new int(*(other.p))){
cout<<"拷贝构造"<<endl;
}
~Father()
{
cout<<"释放空间"<<endl;
delete p;
}
Father &operator=(const Father &other)
{
*(this->p)= *(other.p);
(this->name)=(other.name);
cout<<"拷贝赋值"<<endl;
return *this;
}
};
class Son:public Father
{
int *age;
public:
Son(){}
Son(int age,int p,string name):Father(p,name),age(new int(age)){}
Son(const Son &other):age(new int(*(other.age))),Father(other){
cout<<"拷贝构造"<<endl;
}
~Son()
{
cout<<"释放空间"<<endl;
delete age;
}
Son &operator=(const Son &other)
{
*(this->age)=*(other.age);
Father::operator=(other);
cout<<"拷贝赋值"<<endl;
return *this;
}
void show()
{
cout<<*age<<endl;
cout<<*p<<endl;
cout<<name<<endl;
}
};
int main()
{
Son s1(20,30,"zhangsan");
Son s2=s1;
s2.show();
Son s3(40,89,"lisi");
s3.operator=(s2);
s3.show();
return 0;
}
写出下列类的,构造函数(有参、无参),析构函数,拷贝构造函数和拷贝赋值函数写出下列类的,构造函数(有参、无参),析构函数,拷贝构造函数和拷贝赋值函数
最新推荐文章于 2024-09-07 05:15:02 发布