1
#include <iostream>
#include <functional>
using namespace std;
class Child;
class Parent {
public:
template <class Function, class... Args>
void f(Function&& f, Args&&... args)
{
Child *c = dynamic_cast<Child*>(this);
cout << c->n;
}
};
class Child : public Parent {
public:
int n = 0;
};
int main()
{
Parent *p = new Child();
cout << "abc";
return 0;
}
コードは、親のテンプレートメンバー関数から子クラスのメンバーにアクセスする予定です。テンプレートメンバー関数は仮想ではないので、私はこれをやりたいと思います。私が得たエラーは: "'子は不完全な型です"。この仕事をするにはどうすればいいですか?親のテンプレート関数から子メンバーにアクセスする方法は?