#include #include using namespace std;

class Student { private: char *pname; int score; public: Student():pname(new char[5]), score(0) { //默认构造函数 strcpy(pname, 'None'); cout<'construct '<<pname<<endl; } Student(const char *name, int s):pname(new char[strlen(name)+1]), score(s) { //带参数构造函数 strcpy(pname, name); cout<'construct '<<pname<<endl; } Student(const Student &s):pname(new char[strlen(s.pname)+1]), score(s.score) { //拷贝构造函数 strcpy(pname, s.pname); cout<'copy '<<pname<<endl; } ~Student() { //析构函数 cout<'destruct '<<pname<<endl; delete[] pname; } void Disp() const { //输出信息 cout<<pname<' '<<score<<endl; } };

int main() { char name[20]; int score; cin>>name>>score; Student s1, s2(name, score), s3(s2); s1.Disp(); s2.Disp(); s3.Disp(); Student s4=s3; s4.Disp(); return 0; }

C++ 学生类设计与实现:内存管理、构造函数、析构函数和拷贝构造函数

原文地址: https://www.cveoy.top/t/topic/m7tI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录