首先声明一下,C++的内部类与Java内部类相似,但有一点不同,即C++需要一个显式的成员只想外部类对象,而Java内部类对象有一个隐式的成员指向外部类对象。
给出两个example:
1.C++内部类
(原创来自:http://blog.chinaunix.net/uid-7769108-id-166762.html)
#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 ;}//aa._a
此处显示指名外部类对象!!
};
private:
int
_a ;
public:
B bb ;
};
int main(int argc,
char *argv[])
{
cout<<"Hello, world"<<‘\n‘;
A a ;
a.bb.show(a) ;
return
0;
}
2.Java内部类
public class
outClass {
public outClass(int a)
{
// TODO Auto-generated constructor
stub
this.a =a;
b = new interClass();
}
public class interClass {
public void
show() {
// TODO
Auto-generated constructor stub
System.out.println("interClass "+ a);
}
}
private int
a;
private interClass b;
public static void main(String[] args)
{
// TODO Auto-generated method
stub
new
outClass(10).b.show();
}
}