我對使用C++向下轉換對象有疑問。Downcasting a class C++
這裏談到一個例子:
class A { }
class B : public A {
public:
void SetVal(int i) { _v = i; }
private:
int _v;
}
A* a = new A();
B* b = dynamic_cast<B*>(a);
b->SetVal(2);
將它與這個例子發生什麼呢?我們正在修改一個基礎類,就像它是一個小孩一樣......它如何與內存相關?
有了這個演員...是否像創建B的實例並複製A的值?
感謝
'dynamic_cast'只適用於多態對象。 – 2013-05-03 14:36:52
@LuchianGrigore我錯過了一個好點。 – 2013-05-03 14:38:08
@JosephMansfield Will B * b = dynamic_cast (a)在兩種情況下都沒有使用dynamic_cast關鍵字(A是poly/non-poly morphic)? – 2014-03-03 14:39:39