鱼C论坛

 找回密码
 立即注册
查看: 2124|回复: 0

[技术交流] 抽象方法

[复制链接]
发表于 2016-5-12 11:18:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
抽象方法一般格式  virtual void run() = 0 ;
基类析构函数要加virtual,否则会有警告
如果基类有抽象函数(也叫纯虚函数),那么子类一定要实现该方法,否则会报错


  1. #include <iostream>

  2. using std::cout;
  3. using std::endl;
  4. using std::string;

  5. class Animal
  6. {
  7. public:
  8.     Animal(string name);
  9.     virtual ~Animal();
  10.     virtual void run() = 0 ;
  11. protected:
  12.     string name ;
  13. };

  14. Animal::Animal(string name)
  15. {
  16.     this->name = name ;
  17. }

  18. Animal::~Animal()
  19. {

  20. }

  21. class Dog : public Animal
  22. {
  23. public:
  24.     Dog(string name);
  25.     ~Dog();
  26.     virtual void run();
  27. };

  28. Dog::Dog(string name):Animal(name)
  29. {

  30. }
  31. Dog::~Dog()
  32. {

  33. }
  34. void Dog::run()
  35. {
  36.     cout<<"我叫"<<name<<",我跑步时乱蹦乱跳"<<endl;
  37. }
  38. int main()
  39. {
  40.     Dog* dog = new Dog("教主");
  41.     dog->run();

  42.     delete dog ;
  43.     return 0;
  44. }
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-22 11:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表