首页 > 代码库 > C++内部类与Java内部类都区别
C++内部类与Java内部类都区别
首先声明一下,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();
}
}