jeans chen
we've got them by the balls

C++内部类 2007-08-31 14:09:07

分类: C/C++


#include <iostream>
using namespace std;

class A
{
    public:
        A() : _a(10) {}
    private:
        class B
        {
            public:
                void show(const A &aa) { cout << "_a: " << aa._a <<endl ;}
        };
    private:
        int _a ;
    public:
        B bb ;
};

int main(int argc, char *argv[])
{
    cout<<"Hello, world"<<'\n';
    A a ;
    a.bb.show(a) ;
    return 0;
}

ctest/nestedclass$ ./1
Hello, world
_a: 10


内部类可以访问外部类的私有成员,外部类不能访问内部类的私有成员!
 
阅读(5492) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-07-05 15:26:17

DEV-C++也许可以编译通过,关于嵌套类不同的编译器给出的规则不一样

chinaunix网友2008-06-06 16:55:44

参考:http://topic.csdn.net/t/20041115/23 /3555795.html 我不知道楼主是在哪里编译通过的,我用VC7无法访问外部类的私有成员变量。 引用:“在C++编程思想中提到你的这个问题。(其实我想完全没有用这个东东的道理呀) 嵌套的结构(当然包括类)并不能自动获得访问private成员的权限,要获得的。。的话,必须遵守特定的规则:首先声明(不是定义)一个嵌套结构,然后 声明它是全局范围使用的一个friend,最后定义这个结构。结构的定义必须与friend声明分开,否则不会把它看做成员。”

 
posted on 2013-08-30 10:48  jeans chen  阅读(1273)  评论(0编辑  收藏  举报