超载<<
对于包含多个成员变量的类,打印每个变量在屏幕上会让人厌烦的快。例如,考虑下面的类:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
class
Point{private: double
m_dX, m_dY, m_dZ;public: Point(double
dX=0.0, double
dY=0.0, double
dZ=0.0) { m_dX
= dX; m_dY
= dY; m_dZ
= dZ; } double
GetX() { return
m_dX; } double
GetY() { return
m_dY; } double
GetZ() { return
m_dZ; }}; |
|
1
2
3
4
|
Point
cPoint(5.0, 6.0, 7.0);cout
<< "("
<< cPoint.GetX() << ",
"
<< cPoint.GetY()
<< ",
"
<< cPoint.GetZ()
<< ")"; |
|
1
2
|
Point
cPoint(5.0, 6.0, 7.0);cout
<< cPoint; |
并得到了相同的结果。通过重载<<运算符,您可以!重载操作符>>相似的重载操作符+(他们都是二元操作符),除了参数类型是不同的。
考虑表达cout << CPoint。如果运算符<<,操作数是什么?左操作数对象的用户,和右操作数是你的类的对象。法院实际上是ostream类型对象。因此,我们的重载函数将看起来像这样:
|
1
|
friend
ostream& operator<< (ostream &out, Point &cPoint); |

1万+

被折叠的 条评论
为什么被折叠?



