因此,在我的派生类 OrderedList 的头文件中,我通过告诉编译器使用基类方法来继承我之前创建的 List 类的一些功能using List<DataType>::examplefunction;
。所有未被覆盖且以上述方式声明的函数都是 OrderedList 的私有成员。
因此,当我运行我的程序时,我在 Microsoft Visual Studio 中获得以下错误:
错误 C2248:“OrderedList::examplefunction”:无法访问在类“OrderedList”中声明的私有成员
examplefunction 在基类 List 中是公共的。
这是我正在使用的具体示例:
在 OrderedList.h 中,
private:
using List<DataType>::remove;
在 List.h 中,
public:
void remove () throw ( logic_error );
而在 List.cpp 中 remove 的位置,
void List<DataType>::remove () throw ( logic_error )
{ // Do some operations//
}
我的 OrderedList 头文件中的声明也是这样的:
#include "List.cpp"
template < typename DataType, typename KeyType >
class OrderedList : public List<DataType>
如果有人能告诉我是什么导致了这个问题,那将不胜感激。