據我瞭解,在Java中,所有的變量是引用。在java和c + +中的實例變量
在接下來的代碼:
class Parent {
public int x = 12;
}
class Child extend Parent {
public int x = 42;
}
Parent p = new Parent();
System.out.println(p.x);
12
Child c = new Child();
System.out.println(c.x);
42
p = c; // be careful here!
System.out.println(p.x);
12
我認爲沒有切片在這裏,因爲我們談論refernces。出於這個原因,我不明白爲什麼要打印"12"
。 p
是現在指向的c
面積,c.x
是42
同樣是在接下來的代碼發生在C++:
class Parent {
public:
void example() { cout << "Parent" << endl; }
};
class Child : public Parent {
public:
void example() { cout << "Child" << endl; }
};
Parent * p = new Parent();
p->example()
Parent
Child * c = new Child();
c->example()
Child
p = c; // be careful here!
p->example()
Parent
+1:但你是什麼性質呢? – 2011-06-17 13:37:50