包围 class 可以访问嵌套的 class 吗?

Can enclosing class access nested class?

我有以下代码:

#include <iostream>
#include <string>

class enclose
{
    private:
        int x;
    public:
        enclose(void) { x = 10; };
        ~enclose(void) { };

        class nested1
        {
            public:
                void printnumber(enclose p);
        };
};

void    enclose::nested1::printnumber(enclose p)
{
    std::cout << "the number is " << p.x << std::endl;
}

int main()
{
    enclose example;

    example.printnumber();
}

我知道最后一行 example.printnumber(); 不正确。但是,我想知道封闭的 class 是否可以访问嵌套的 class' 函数。 example 如何访问 printnumber() 函数?

Can enclosing class access nested class?

是,如果封闭 class 具有嵌套 class.

实例 (一个对象)

A class is a class is a class...嵌套并不重要,您必须始终拥有 class 的实例才能调用(非静态)成员函数。