gpt4 book ai didi

c++ - 从接口(interface)派生的模板 - 多态性停止工作?

转载 作者:太空狗 更新时间:2023-10-29 21:04:13 24 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Accessing protected members in a derived class

如果我有一个抽象基类和一个从它派生的具体模板类,它有一个使用指向基类的指针的方法 - 派生类似乎不再将自己视为派生自它:

class AbstractBase
{
protected:
virtual void test() = 0;
};

template < class T >
class Derived : public AbstractBase
{
public:
virtual void call( AbstractBase* d ) { d->test(); } // Error!
protected:
virtual void test() {}
};

int main()
{
Derived< int > a;
Derived< int > b;

b.call( &a );

return EXIT_SUCCESS;
}

此错误:

'virtual void AbstractBase::test()' is protected

编译器没有错,肯定是protected - 但如果 Derived< T >继承自 AbstractBase ,为什么会提示?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com