跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • c++类的继承问题
未分類
14 11 月 2020

c++类的继承问题

c++类的继承问题

資深大佬 : gargar 3

C++渣渣,遇到这个题目,请问 Dan(std::function<Niao* ()> createNiao) 是什么用法?

还有应该怎么标志,才能知道产生 Egg 的是哪个类( Niao 还是 Yazi )?

#include <stdexcept> #include <functional>  class Dan;  class Niao { public:     virtual ~Niao() {};     virtual Dan* lay() = 0; };  class Dan { public:     Dan(std::function<Niao* ()> createNiao)     {         throw std::logic_error("Waiting to be implemented");     }      Niao* hatch()     {         throw std::logic_error("Waiting to be implemented");     } };  class Yazi : public Niao { public:     Yazi()     {     }      Dan* lay()     {         throw std::logic_error("Waiting to be implemented");     } };  #ifndef RunTests int main() {     Niao* yazi = new Yazi();      Dan* dan1 = yazi->lay();     Niao* childYazi1 = dan1->hatch(); } #endif 

大佬有話說 (3)

  • 資深大佬 : across

    简单说 std::function 就是类型化的 C++版本函数指针。Niao* () 是函数类型声明,无入参,有返回值。Dan 的构造函数就是设定一个回调而已,看这意思就是 hatch 的时候调用下 createNiao 吧。

    看了半天才发现是拼音····

  • 資深大佬 : PepperEgg

    拼音英文混合变成啊 XD

  • 資深大佬 : zhongrs232

    看代码莫名喜感哈哈哈哈

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具