0
愚蠢的錯字,而我沒有看到導致此問題。現在解決。謝謝大家!
爲什麼不會我的代碼輸出COUT的每個單獨的類?
預期的結果應該是從1消息與消息從2?
class CTest
{
public:
virtual void WriteMessage();
};
void CTest::WriteMessage()
{
}
class CMessage1 : public CTest
{
virtual void WriteMesssage()
{
cout << "Message from 1" << endl;
}
};
class CMessage2 : public CTest
{
virtual void WriteMesssage()
{
cout << "Message from 2" << endl;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
CTest* pMessages[4];
pMessages[0] = new CMessage1;
pMessages[1] = new CMessage2;
pMessages[2] = new CMessage1;
pMessages[3] = new CMessage2;
for (int i = 0; i < 4; i++)
{
pMessages[i]->WriteMessage();
}
return 0;
}
我是否需要爲CMessage的每個實例創建WriteMessage虛擬void? 像這樣:
void CMessage2::WriteMesssage()
{
cout << "Message from 2" << endl;
}
你觀察到什麼行爲? – 2014-10-05 17:41:42
究竟是什麼問題? – Galik 2014-10-05 17:41:59
它不會在每個類的cout中打印出任何內容。當它通過主數組時,它應該輸出來自每個不同類的cout。 代碼運行並編譯,但根本沒有輸出。 – Keir 2014-10-05 17:45:08