作者jiahwai (好想和风一起飞)
看板Programming
标题[问题] java与C++ 关於inner class载入记忆体之时间点
时间Mon Jan 5 17:33:56 2009
在一个class object产生出来前 编译器会先将这个.class载入到记忆体
那我现在class里面包着一个class
降子是分出两个.class
对吧
interface Destination{ String readLabel(); }
public class Parcel4{
public Destination dest( String s ){
class PDestination implements Destination{
private String label;
private PDestination( String whereTo ){
label = whereTo;
}
public String readLabel(){ return label; }
}
return new PDestination( s );
}
public static void main( String[] args ){
Parcel4 p = new Parcel4(); //倒数第4行
Destination d = p.dest("Tanzania"); //倒数第3行
}
}
像这样的一个程式?
Q1: PDestination.class会在倒数第3还4行载入到记忆体?
换句话说,Parcel4.class和 PDestination.class是同时载入到记忆体,
还是有先後差别
那麽现在如果换成C/C++
class Destination{
public:
virtual void readLabel(void) = 0;
};
class Parcel4{
public:
Destination* dest( string s ){
class PDestination: public Destination{
public:
PDestination( string whereTo ){
label = whereTo;
}
private:
string label;
void readLabel(void){
cout<<label<<endl;
}
};
return new PDestination(s);
}
};
int main(){
Parcel4 p;
Destination* d = p.dest("Test");
(*d).readLabel();
system("pause");
return 0;
}
Q2: 同样的问题转成C++变成有点不会问了@@
编译过後的outer,inner class同时载进去记忆体? 还是会有先後之分?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.250.224.67