假设在我的 C++ 代码中定义一个自定义类型来处理 3d 中的 vector :
typedef tuple<double,double,double> vector3d;
是否可以向其中添加一个方法,以便我可以使用以下方法快速输出它们的坐标:
vector3d somevector(1,1,1);
cout << somevector << "\n";
我知道我可以将这些对象包装在 class
或 struct
中,但是否可以更直接地做到这一点?
最佳答案
过载 streaming operator对于 ostream
。
typedef tuple<double,double,double> vector3d;
ostream& operator<<(ostream& os, const vector3d& vec)
{
os << '(' <<
std::get<0>(vec) << ',' <<
std::get<1>(vec) << ',' <<
std::get<2>(vec) << ')';
return os;
}
int main(int argc, char *argv[])
{
cout << vector3d(1, 2, 3);
return 0;
}
关于c++ - 为 typedef 定义的对象添加 ofstream 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34815144/