本文主要是介绍面向对象程序设计及C++mooc编程(第五章)--by sCh3n,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第一题
首先定义一个类POINT,有两个int型的保护数据成员x、y表示该类对象在二维坐标系中的坐标位置,定义如下三个公有成员函数:
(1) 构造函数:设置点的初始值;
(2) 成员函数change改变坐标位置
(3) 成员函数show显示点的位置,具体输出形式请参考下面的输出提示;cout<<"("<<x<<","<<y<<")"<<endl;
然后,以类POINT为基类定义派生类CIRCLE,其中增加一个私有数据成员int r表示该圆的半径,定义如下两个公有成员函数:
(1) 构造函数:负责调用基类的构造函数及为本类的半径成员初始化
(2)重新定义show函数显示圆心的位置及半径的值,
#include<iostream>
using namespace std;class POINT
{protected:int x,y;public:POINT(int a,int b):x(a),y(b){}void change(int a,int b){x=a;y=b;}void show(){cout<<"("<<x<<","<<y<<")"<<endl;}
};
class CIRCLE:public POINT
{private:int r;public:CIRCLE(int a,int b,int c):POINT(a,b),r(c){}void show(){cout<<"the center of the circle is:\n";POINT::show( );cout<<"the radius is:"<<r<<endl;}
};
int main ( ){POINT p (2, 3);CIRCLE c (3, 4, 5);cout<<"original p:\n";p.show ();p.change (20,30);cout<<"changed p:\n";p.show ();cout<<"original c:\n";c.show ( );c.change (30,40);cout<<"changed c:\n";c.show ( );return 0;}
第二题
图5-13(见教材p138)是一个多重继承的类继承关系示意图,各类的主要数据成员有说明,请自己定义合理的成员函数,编程实现该继承关系的程序,并定义一个在职研究生对象,先输入相关信息,再输出。
关于数据成员:
数据类Data:成员string name,保存姓名;
教师类Teacher:增加成员float sal,保存工资;
学生类Student:增加成员string id,保存学号;
研究生类Postgrad:增加成员 string dn,保存系别;
教师中的在职研究生类Tpost:不另外定义成员。
关于成员函数:
各类定义输出所有数据
成员的函数void print()。
#include<iostream>
using namespace std;
class Data
{protected:string name;public:Data(string a):name(a){}
};
class Teacher:public virtual Data
{protected:float sal;public:Teacher(string a,float b):Data(a),sal(b){}
};
class Student:public virtual Data
{protected:string id;public:Student(string a,string b):Data(a),id(b){}
};
class Postgrad:public Student
{protected:string dn;public:Postgrad(string a,string b,string c):Data(a),Student(a,b),dn(c){}
};
class Tpost:public Teacher,public Postgrad
{public:Tpost(string n,float s,string i,string d):Data(n),Teacher(n,s),Postgrad(n,i,d){}
};
int main()
{string name,id,dn;float sal;cin>>name>>id>>dn>>sal;Tpost tp(name,sal,id,dn);cout<<"The teacher and postgraduate:"<<endl;cout<<"name="<<name<<endl;cout<<"id="<<id<<endl;cout<<"dn="<<dn<<endl;cout<<"sal="<<sal<<endl;
}
这篇关于面向对象程序设计及C++mooc编程(第五章)--by sCh3n的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!