【发布时间】:2014-05-07 11:24:26
【问题描述】:
我创建了一个类Location,它是类Village 和City 的父类。我有一个vector<Location*>,其中包含村庄和城市。现在,我需要将这个vector 的内容打印到标准输出。这很简单:
for (int i = 0; i < locations.size(); i++)
cout << locations.at(i);
我为 Village、City 和 Location 类重载了运算符 Location 类的重载运算符 Village 和City 调用重载运算符(取决于具体实例)。是否有类似用于重载运算符的虚拟方法之类的东西?
我是 C++ 编程新手,我正在使用 Java 编程,所以请帮助我。提前致谢。
【问题讨论】:
-
当然你的意思是
vector<Location*>,否则我向你保证它不包含村庄和城市。 -
@StoryTeller 是的,你是对的,对不起。
-
请出示运营商签名;它们是成员函数还是全局函数?
-
在基类中创建一个用于输出的虚方法。这个函数应该被派生类覆盖,并在
operator<<()的实现中被委托给。 -
@0x499602D2 这是个好主意!谢谢,我试试看。