在使用需要使用子类的函数时,出现一个错误,即尚未声明该子类。那么,如何将宣布这个子类,而后来有重复声明的问题?
这是代码的大致概念:
class MyClass {
public:
void myFunction(Node* myNode);
private:
class Node {
public:
Node();
Node(string myString, int myInt);
~Node();
string m_string;
private:
int m_int;
}
};
那么在这种情况下,我将如何声明Node以便可以在myFunction中使用它而无需稍后重新声明呢?
答案 0 :(得分:0)
那么我该如何声明这个
subclass[嵌套类],而不会在以后出现重新声明的问题?
通过声明(并定义)嵌套类,然后使用取决于嵌套类声明的参数声明成员函数。
class MyClass {
private:
class Node {
public:
Node();
Node(string myString, int myInt);
~Node();
string m_string;
private:
int m_int;
}
public:
void myFunction(Node* myNode);
};
尽管前向声明足以声明带有指针参数的函数,但嵌套类无法前向声明。