作者kkroy (☆㊣↖煞氣ㄟ阿喂↘ξ★)
看板C_and_CPP
標題Re: [問題] link list 由不同資料型態串起來
時間Fri Mar 5 03:43:05 2010
我剛剛玩了一下,
把List改一下,
class BASE{
public:
virtual ~BASE(){};
};
class A : public BASE {
public:
A(){
ptr = new int(17);
};
~A(){
if( ptr != NULL){
delete ptr;
}
};
private:
int* ptr;
};
struct EVENT{
BASE* dataPtr;
EVENT* link;
};
int main(){
EVENT* ptrEvent = new EVENT;
ptrEvent->link = NULL;
ptrEvent->dataPtr = new A;
//// .... 一些cout...略////
system("pause");
}
compiler卻不給我過?
錯誤訊息顯示:
error C2243: '型別轉換' : 從 'A *' 至 'BASE *' 的轉換已經存在,但無法存取
怎麼會這樣? 我有點搞不懂了....
不是可以定義父類別的指標指向其衍生類別嗎?
請各位幫我提點一下! 感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.230.181.215
※ 編輯: kkroy 來自: 61.230.181.215 (03/05 03:46)
推 LPH66:你確定是 class A : public BASE 這樣? 03/05 06:03
→ LPH66:因為這是在用 private 繼承或 protected 繼承才會出現的 03/05 06:03
→ LPH66:這是用來防止繼承來的 class 透過多型呼叫繼承來的東西 03/05 06:04
→ LPH66:應該說防止外面透過多型呼叫已經不是 public 的東西 03/05 06:05
※ 編輯: kkroy 來自: 61.230.181.215 (03/05 08:13)