如何正确申报一个子类? (C ++)

时间:2019-01-31 19:56:24

标签: c++

在使用需要使用子类的函数时,出现一个错误,即尚未声明该子类。那么,如何将宣布这个子类,而后来有重复声明的问题?

这是代码的大致概念:

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中使用它而无需稍后重新声明呢?

1 个答案:

答案 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);
};

尽管前向声明足以声明带有指针参数的函数,但嵌套类无法前向声明。