65,207
社区成员
发帖
与我相关
我的任务
分享
template<class T, class Left, class Right>
class Base
{
public:
Base(Left* left, Right* right) : left_(left), right_(right) {}
T* GetDrived() { return static_cast<T*>(this); }
void Test()
{
GetDrived()->DoTest();
}
private:
Left* left_;
Right* right_;
};
template<class Left, class Right>
class DrivedA : public Base<DrivedA, Left, Right> // 此处报错
{
public:
DrivedA(Left* left, Right* right) : Base<DrivedA, Left, Right>::Base(left, right) {}
void DoTest()
{
std::cout << "DrivedA::DoTest()" << std::endl;
}
};