c++内部类如何定义及使用

2024-04-22

在C++中,内部类可以在另一个类的内部定义。内部类可以访问外部类的成员变量和成员函数,而外部类也可以访问内部类的成员变量和成员函数。

内部类的定义方式如下:

class OuterClass {
public:
    class InnerClass {
    public:
        void innerFunction() {
            // inner class function implementation
        }
    };
};

在外部类中实例化内部类的方式如下:

OuterClass outerObj;
OuterClass::InnerClass innerObj;

调用内部类的成员函数的方式如下:

innerObj.innerFunction();

需要注意的是,如果内部类想要访问外部类的成员变量或成员函数,可以使用外部类的指针来访问,如下所示:

class OuterClass {
public:
    class InnerClass {
    public:
        void innerFunction() {
            // access outer class member variable
            cout << outerObj.outerVar << endl;
            
            // access outer class member function
            outerObj.outerFunction();
        }
    };

    int outerVar;
    void outerFunction() {
        // outer class function implementation
    }

    InnerClass innerObj;
};

在内部类中可以使用OuterClass::来访问外部类的成员变量和成员函数。