- 整理思维导图
- 有以下类定义,写出该类的构造函数,析构函数,拷贝构造函数,要求,构造函数要创建出长度为10的字符串给name用,所有类对象的空间都是用new动态申请。
class Stu { string name; int age; int score; int *high; };
#include <iostream>
#include <cstring>
using namespace std;
class Stu{
string name;
int age;
int score;
int *high;
public:
Stu(string name,int age,int score,int *high){
this->name = name;
this->age = age;
this->score = score;
this->high = high;
cout << "stu有参构造函数" << endl;
}
Stu(const Stu &a):name(a.name),age(a.age),score(a.score){
this->high = new int ;
*(this->high) = *(a.high);
cout<<"stu拷贝构造函数"<<endl;
}
void show(){
cout<<"name="<<this->name<<" age="<<this->age<<" score="<<this->score<<" high="<<*(this->high)<<" "<<endl;
}
~Stu(){
delete high;
cout<<"stu析构函数"<<endl;
}
};
int main()
{
string *name = new string ("ll");
int *age = new int (18);
int *score = new int (88);
int *high = new int (180);
Stu s1(*name,*age,*score,high);
s1.show();
Stu s2 = s1;
s2.show();
return 0;
}