gpt4 book ai didi

C++ 为子类重载运算符 <<

转载 作者:太空宇宙 更新时间:2023-11-03 10:45:20 25 4
gpt4 key购买 nike

我创建了一个类 Location这是类的父类 VillageCity .我有一个 vector<Location*> ,其中包含村庄和城市。现在,我需要将 vector 的内容打印到标准输出.这很简单:

    for (int i = 0; i < locations.size(); i++)
cout << locations.at(i);

我为类 Village 重载了运算符 << , CityLocation .它被称为重载运算符 << 来自类 Location每时每刻。我需要为 Village 调用重载运算符和 City (取决于具体实例)。是否有类似用于重载运算符的虚方法的东西?

我是 C++ 编程的新手,我正在用 Java 编程,所以请帮助我。提前致谢。

最佳答案

简答

不,没有这样的事情。您可以使用现有的 C++ 功能来模拟它。

长答案

您可以将方法添加到位置 virtual void Print(ostream& os)并实现 operator<<像这样:

std::ostream& operator<<(ostream& os, const Location& loc) 
{
loc.Print(os);
return os;
}

如果您覆盖 Print()在您的派生类中,您将获得所需的功能。

关于C++ 为子类重载运算符 <<,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23516469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com