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;
}
코드는 부모의 템플릿 멤버 함수에서 자식 클래스의 멤버에 액세스하려고합니다. 템플릿 멤버 함수가 가상 일 수 없기 때문에이 작업을 수행하고 싶습니다. 내가 가진 오류는 : " '하위'는 불완전한 유형입니다." 이 작업을 어떻게 수행합니까?상위 템플릿 기능에서 하위 멤버에 액세스하는 방법은 무엇입니까?