【牛客带你学编程C++方向】项目练习第6期(截止5.2)


C++项目练习:第6期
练习时间:4月16日-5月2日(2周,劳动节相应后延)
活动规则:
  • 每一期一个项目,届时会开新帖发布
  • 学员直接将答案提交到该贴评论区即可
  • 两周后,公布导师参考答案
  • 导师评选出当期最佳代码(将设置为精彩回复

奖励:牛客大礼包一份(牛客定制水杯 牛客定制笔 牛客定制程序员徽章 滑稽抱枕)
参与方式:直接将你的代码回复到本帖评论区

----------------------------------------------------

本期题目:

给定接口,使用继承编写代码,通过测试
#include <string>
#include <iostream>
#include <assert.h>
using std::string;
using std::cout;
using std::endl;
 
class Subject {
  public:
    virtual string Name() = 0;
};
 
void fillObjects(Subject *o[]) {
  //fill Calculus, English, Algebra, C++ Language, Physics
  //o[0] = new Calculus;
  //o[1] = new English;
  //o[2] = new Algebra;
  //o[3] = new Cpp;
  //o[4] = new Physics;
}
 
int main(){
  Subject *o[5];
  fillObjects(o);
 
  assert(o[0]->Name() == "Calculus");
  assert(o[1]->Name() == "English");
  assert(o[2]->Name() == "Algebra");
  assert(o[3]->Name() == "C++ Language");
  assert(o[4]->Name() == "Physics");
  cout << "pass!!!" << endl;
  return 0;
}

参与方式:直接将你的代码回复到本帖评论区

全部评论
#include <assert.h> #include <iostream> #include <string> using std::cout; using std::endl; using std::string; class Subject { public: virtual string Name() = 0; }; class Calculus : public Subject { public: string Name() { return "Calculus"; } }; class English : public Subject { public: string Name() { return "English"; } }; class Algebra : public Subject { public: string Name() { return "Algebra"; } }; class Cpp : public Subject { public: string Name() { return "C++ Language"; } }; class Physics : public Subject { public: string Name() { return "Physics"; } }; void fillObjects(Subject *o[]) { o[0] = new Calculus; o[1] = new English; o[2] = new Algebra; o[3] = new Cpp; o[4] = new Physics; } int main() { Subject *o[5]; fillObjects(o); assert(o[0]->Name() == "Calculus"); assert(o[1]->Name() == "English"); assert(o[2]->Name() == "Algebra"); assert(o[3]->Name() == "C++ Language"); assert(o[4]->Name() == "Physics"); cout << "pass!!!" << endl; for (int i = 0; i < 5; i++) delete o[i]; return 0; }
点赞 回复 分享
发布于 2018-04-16 17:22
#include <string> #include <iostream> #include <assert.h> using std::string; using std::cout; using std::endl; class Subject{ public:     virtual string Name() = 0; }; class Calculus :public Subject { public:     string Name(){         return "Calculus"; //微积分     } }; class English :public Subject { public:     string Name(){         return "English";     } }; class Algebra :public Subject { public:     string Name(){         return "Algebra"; //代数     } }; class Cpp :public Subject { public:     string Name(){         return "C++ Language";     } }; class Physics :public Subject { public:     string Name(){         return "Physics";     } }; void fillObjects(Subject* o[]) {     //fill Calculus, English, Algebra, C++ Language, Physics     o[0] = new Calculus;     o[1] = new English;     o[2] = new Algebra;     o[3] = new Cpp;     o[4] = new Physics; } int main() {     Subject* o[5];     fillObjects(o);     assert(o[0]->Name() == "Calculus");     assert(o[1]->Name() == "English");     assert(o[2]->Name() == "Algebra");     assert(o[3]->Name() == "C++ Language");     assert(o[4]->Name() == "Physics");     cout << "pass!!!" << endl;     for (int i = 0;i < 5;i++)         delete o[i];     return 0; }
点赞 回复 分享
发布于 2018-04-16 14:37

相关推荐

想玩飞盘的菠萝蜜在春...:上交✌🏻也拒?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务