【发布时间】:2012-10-06 02:37:36
【问题描述】:
因此,在我的派生类 OrderedList 的头文件中,我通过告诉编译器使用 using List<DataType>::examplefunction; 的基类方法,继承了我之前创建的 List 类的一些功能。所有未被覆盖且以上述方式声明的函数都是 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 中的位置,
void List<DataType>::remove () throw ( logic_error )
{ // Do some operations//
}
我的 OrderedList 头文件中的声明也是这样的:
#include "List.cpp"
template < typename DataType, typename KeyType >
class OrderedList : public List<DataType>
如果有人能告诉我导致问题的原因,将不胜感激。
【问题讨论】:
-
提供更多的代码,而不仅仅是使用 stmt。
-
我添加了更多代码。希望这会对您有所帮助。你有什么具体的要求吗?
-
您的部分代码仍然不足以理解您的问题。
-
你还想让我发布什么?真的没有更多的参与。
标签: c++ visual-studio-2010 inheritance