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