gpt4 book ai didi

c++ - 将双点坐标转换成字符串

转载 作者:搜寻专家 更新时间:2023-10-31 01:16:21 26 4
gpt4 key购买 nike

string Point::ToString(const Point& pt)
{
std::stringstream buffX; //"Incomplete type is not allowed"????
buffX << pt.GetX(); // no operator "<<" matches these operands????
std::stringstream buffY;
buffY << pt.GetY();

string temp = "Point(" + buffX + ", " + buffY + ")"; //???....how to combine a couple of strings into one?..
return temp.str();
}

我按照类似问题的代码,但是系统说“Incomplete type is not allowed”---buffX下的红线

“<<”下的红线表示----没有运算符“<<”匹配这些操作数

真的不知道为什么..

谢谢!

最佳答案

您需要 #include <sstream>使用 std::ostringstream .

然后:

std::string Point::ToString(const Point& pt)
{
std::ostringstream temp;
temp << "Point(" << pt.GetX() << ", " << pt.GetY() << ")";
return temp.str();
}

不清楚为什么要传递 Point ,因为这是该类的成员。也许更清洁的是:

std::string Point::ToString() const
{
std::ostringstream temp;
temp << "Point(" << GetX() << ", " << GetY() << ")";
return temp.str();
}

这可能是不正确的,假设 GetX()GetY() return某种数字类型( intfloatdouble ,...)。如果不是这种情况,您可能想要更改它们(principle of least astonishment)或访问 class 的基础数据成员。直接。

如果您正为此类编译器错误而苦恼,我强烈建议您自己获取 a good C++ book .

关于c++ - 将双点坐标转换成字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9146614/

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