#include <iostream>
using namespace std;
class Per
{
friend class Stu;
private:
string name;
int age;
int * heigth;
int * weigth;
public:
//构造函数
Per(){};
//有参构造函数
Per( string name, int age ,int heigth , int weigth):name(name),age(age),heigth(new int (heigth)),weigth(new int (weigth)){};
//有参拷贝构造函数
Per(const Per &other):name(other.name),age(other.age),heigth(new int (*(other.heigth))),weigth(new int (*(other.weigth))){};
//拷贝赋值函数
Per &operator=(const Per &other)
{
if( this != &other )
{
name=other.name;
age=other.age;
heigth=other.heigth;
weigth=other.weigth;
}
return *this;
}
void show()
{
cout << name <<" "<< age <<" "<< *heigth <<" "<< *weigth << endl;
}
//析构函数
~Per()
{
delete heigth;
delete weigth;
}
};
class Stu
{
private:
double score;
Per p1;
public:
//吧啦吧啦一大堆
Stu(){};
//吧啦吧啦一大堆
Stu(double score ,Per p1):score(score),p1(p1){};
//拷贝构造函数
Stu(const Stu &other):score(other.score),p1(other.p1){};
//赋值拷贝函数
Stu &operator=(const Stu &other)
{
if(this!=&other)
{
score=other.score;
p1=other.p1;
}
return *this;
}
void show()
{
cout << score << endl;
cout << p1.name << endl;
cout << *(p1.heigth) <<endl;
//输出同理
}
~Stu(){};
};
int main()
{
Per s("梁启千",23,172,65);
s.show();
Per s1(s);
s1.show();
Per s2;
s2=s1;
s2.show();
Stu p(99.9,s);
p.show();
return 0;
}
11.7 C++作业
最新推荐文章于 2024-08-30 15:57:36 发布