【发布时间】:2016-02-15 16:28:53
【问题描述】:
我有一些这样的代码:
class Point {
public:
int x,y;
Point() : x(1), y(1) {}
}
我可以使用printf() 打印该类的对象吗:
int main()
{
Point point;
printf("%o",point);
return 0;
}
或者我必须重载operator<< 并使用std::cout:
std::ostream& operator<<(std::ostream& os, Point const& p)
{
os << p.x << "," << p.y;
return os;
}
int main()
{
Point point;
std::cout << point;
return 0;
}
【问题讨论】:
-
请去掉c标签。
-
@IanAbbott 你来了!
-
当你尝试
printf时发生了什么? -
@juanchopanza 编译已停止,因为表达式
"%o"无效。当我尝试一个有效的参数时,比如"%d",出现了一个错误expects argument of type int。 -
这就是你的问题的答案。