Вызов метода перегруженного родителя из дочернего класса в C ++

Да. Вот что такое статические методы. Просто позвоните. SomeType.yourStaticMethodHere ().

-1
задан Saturnu 19 March 2019 в 14:47
поделиться

1 ответ

Я не знаю, если это вариант, но если вы можете позволить себе шаблон класса вместо метода, вы можете сделать «doFoo» виртуальным, и тогда он будет работать, как вы ожидаете.

#include <iostream>

template <typename ... Args>
struct Parent
   {
   virtual void doFoo(Args&&... args)
     {
     std::cout << "parent doFoo";
     }

   void foo(Args&&... args)
     {
     doFoo(args...);
     }
   };

template <typename ... Args>
 struct Child : Parent <Args...>
   {
     void doFoo(Args&&... args) override
       {
       std::cout << "child doFoo";
       }
   };

int main()
{
   Child<> c;
   c.foo(); // This should invoke Child::doFoo()
}
0
ответ дан Arthur Passos 19 March 2019 в 14:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: