3条回答 默认 最新
- qfl_sdu 2021-06-12 00:00关注
代码如下:
#include <iostream> #include <string> using namespace std; class Student { protected: int math; int english; char name[20]; public: Student(const char*p,int m,int e) { memset(name,0,20); memcpy(name,p,strlen(p)>20?20:strlen(p)); math = m; english = e; } virtual void sum() { int total = math + english; cout << name << "的总成绩:" << total << endl; } }; class Machanics :public Student { protected: int machinedesign; public: Machanics(const char* p,int m,int e,int machine):Student(p,m,e) { machinedesign = machine; } virtual void sum() { int total = math + english + machinedesign; cout << name << "的总成绩:" << total << endl; } }; class Software:public Student { protected: int programming; public: Software(const char* p,int m,int e,int pro):Student(p,m,e) { programming = pro; } virtual void sum() { int total = math + english + programming; cout << name << "的总成绩:" << total << endl; } }; class DoubleDegree :public Machanics, public Software { private: int thesis; public: DoubleDegree(const char* p,int m,int e,int mac,int pro,int th):Machanics(p,m,e,mac),Software(p,m,e,pro) { programming = pro; thesis = th; } virtual void sum() { int total = Student::math + Student::english + machinedesign + programming + thesis; cout << Student::name << "的总成绩:" << total << endl; } }; int main() { Student* Stud1 = new Machanics("wang",90,88,70); Student* Stud2 = (Student*)(Machanics*)new DoubleDegree("zhang",92,89,90,96,89); Stud1->sum(); Stud2->sum(); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 运动想象脑电信号数据集.vhdr
- ¥15 三因素重复测量数据R语句编写,不存在交互作用
- ¥15 微信会员卡等级和折扣规则
- ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
- ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
- ¥15 gdf格式的脑电数据如何处理matlab
- ¥20 重新写的代码替换了之后运行hbuliderx就这样了
- ¥100 监控抖音用户作品更新可以微信公众号提醒
- ¥15 UE5 如何可以不渲染HDRIBackdrop背景
- ¥70 2048小游戏毕设项目