<分区>
我有以下类(class):
template <class S, class T>
class Pair {
protected:
S data1;
T data2;
public:
...
}
template <class S, class T>
class Node: public Pair<const KeyType, DataType> {
private:
Node<const S, T>* next;
public:
//C'tor
Node(const KeyType& sKey, const DataType& sData) :
data1(sKey), data2(sData), next(NULL) {
}
//Copy C'tor
Node(const Node<KeyType, DataType>& sNode):
data1(sNode.getData1()), data2(sNode.getData2()), next(NULL) {
}
...
};
但由于某些原因,我无法使用 Node 从 Pair 继承的 data1 和 data2。 我收到以下错误:
./map.h:24:5: error: use of undeclared identifier 'data1'
data1 = sKey;
^
./map.h:25:5: error: use of undeclared identifier 'data2'
data2 = sData;
^
./map.h:30:4: error: member initializer 'data1' does not name a non-static data member or base class
data1(sNode.getData1()), data2(sNode.getData2()), next(NULL) {
^~~~~~~~~~~~~~~~~~~~~~~
./map.h:30:29: error: member initializer 'data2' does not name a non-static data member or base class
data1(sNode.getData1()), data2(sNode.getData2()), next(NULL) {
^~~~~~~~~~~~~~~~~~~~~~~
我做错了什么?
*这是我的硬件作业的一部分,所以我不能使用来自 STL 的对。