因此,在派生类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中,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>
如果有人能启发我引起问题的原因,将不胜感激。
最佳答案
如果exampleFunction在List类中是私有的,则OrderedList类将无法访问它。使其受到保护。见Private and Protected Members : C++