struct BaseType
{
int x1;
float x2;
};
struct ChildType
{
int y1;
float y2;
};
Class Base
{
BaseType obj;
void funcBase(BaseType **ptr)
{
*ptr = &obj; // When this assignment happens ofcourse obj is of the BaseType as the LHS ptr is pointing to a BaseType
Now I want to write a C++ equivalent code of the following 2 algorithmic statements,
BaseType's obj.x1 = ChildTypes's obj.y1;
BaseType's obj.x2 = ChildTypes's.obj.y1;
}
};
class Child :: public Base
{
ChildType obj;
};
我wnat從基地獲得孩子的obj.y1並將其分配給基地的obj.x1。如何訪問子類的數據成員當兩個基地和子類有相同的對象名稱,但不同的類型。在C++
但是1件事情要記住,在基地和兒童的對象名稱是相同的 「obj」。
誰能好心幫我在這。謝謝。
肖恩的答案似乎是你的問題一個很好的匹配(假設他你的問題的解釋是正確的),但目前尚不清楚你的要求。你爲什麼試圖從Base對象的成員函數中訪問一個Child對象的數據成員?對您的總體目標(或演示該示例的代碼示例)的描述會很有幫助。 – JBentley 2012-04-13 05:53:42
你的最終目標是什麼?正如Alex Z所說,這是可能的,但我並不特別推薦它。基類不應該知道它的子類。繼承的腳趾的那種步驟。如果obj實際上是一個BaseType並且您試圖將它當作一個ChildType對待會發生什麼?壞事,壞事。 – Corbin 2012-04-13 05:55:10
事實上,不同的設計可能是去這裏的路.. – 2012-04-13 06:04:01