【发布时间】:2012-01-15 13:18:55
【问题描述】:
有这个代码:
#include <iostream>
class Outer{
int a; // private data member of class Outer
public:
Outer(): a(55){}
class Inner{
public:
void fun(Outer ob){
std::cout << ob.a << std::endl;
}
};
};
int main() {
Outer::Inner object;
object.fun(Outer()); // prints 55
//std::cout << (Outer().a) << std::endl; error: 'int Outer::a' is private
return 0;
}
为什么 Inner 类可以访问 Outer 类的私有成员数据“a”?在这篇文章XL C/C++ V8.0 for Linux 之后,它不应该编译,但是它可以在 g++ 4.4.0 上编译。
【问题讨论】:
标签: c++ nested-class