C++ day3
2023-12-31 10:01:27
目录
思维导图
定义一个Person类,包含私有成员,int *age,string &name,一个Stu类,包含私有成员double *score,Person p1,写出Person类和Stu类的特殊成员函数,并写一个Stu的show函数,显示所有信息。
#include <iostream>
using namespace std;
/*Person类*/
class Person
{
int *age;
string &name;
public:
/*Person有两个参数的构造函数*/
Person(int a,string &b):age(new int(a)),name(b)
{
// cout << "Person有两个参数的构造函数" << endl;
}
/*Person的析构函数*/
~Person()
{
// cout << "Person的析构函数" << endl;
delete age;
}
/*Person的拷贝构造函数*/
Person(const Person &other):age(new int(*(other.age))),name(other.name)
{
// cout << "Person的拷贝构造函数" << endl;
}
/*Person的拷贝赋值函数*/
Person &operator=(const Person &other)
{
*(this->age)=*(other.age);
this->name=other.name;
// cout << "Person的拷贝赋值函数" << endl;
return *this;
}
int get_age(); //获取age
string get_name(); //获取name
};
/*Stu类*/
class Stu
{
double *score;
Person p1;
public:
/*Stu有两个参数的构造函数*/
Stu(double a,Person b):score(new double(a)),p1(b)
{
// cout << "Stu有两个参数的构造函数" << endl;
}
/*Stu的析构函数*/
~Stu()
{
// cout << "Stu的析构函数" << endl;
delete score;
}
/*Stu的拷贝构造函数*/
Stu(const Stu &other):score(new double(*(other.score))),p1(other.p1)
{
// cout << "Stu的拷贝构造函数" << endl;
}
/*Stu的拷贝赋值函数*/
Stu &operator=(const Stu &other)
{
*(this->score)=*(other.score);
this->p1=other.p1;
// cout << "Stu的拷贝赋值函数" << endl;
return *this;
}
void show(); //查看所有信息
};
/*获取age*/
int Person::get_age()
{
return *age;
}
/*获取name*/
string Person::get_name()
{
return name;
}
/*显示所有信息*/
void Stu::show()
{
cout << "name=" << p1.get_name() << endl;
cout << "age=" << p1.get_age() << endl;
cout << "score=" << *score << endl;
}
/***********************主函数**************************/
int main()
{
string n="zhangsan";
Person p1(20,n);
Stu s1(80,p1);
string n2="lisi";
Person p2(18,n2);
Stu s2(90,p2);
s2.show();
s2=s1;
s2.show();
return 0;
}
文章来源:https://blog.csdn.net/weixin_60180793/article/details/135276695
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!