码迷,mamicode.com
首页 > 编程语言 > 详细

C++ class外的 << 重载,输出流,重载示例。不应该定义类内的<<重载

时间:2019-12-01 11:47:10      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:定义   outside   ios   out   定义类   operator   overload   over   rect   

#include <iostream>

// overloading "operator << " outside class
// << 应该定义在类之外。

//////////////////////////////////////////////////////////

class Rectangle
{
public:
	Rectangle(int w, int h) 
		: width(w), height(h)
	{};

	~Rectangle() {};

public:
	int width;
	int height;
};


//////////////////////////////////////////////////////////

std::ostream&
operator<< (std::ostream& os, const Rectangle& rec) // 这里的 const 是必要的,rec应该是一个常量,请注意
{
	os << rec.width << ", " << rec.height;
	return  os;

}


//////////////////////////////////////////////////////////

int main()
{
	Rectangle a(40, 10);
	Rectangle b(41, 11);
	Rectangle c(42, 12);

	std::cout
		<< "a = " << a << std::endl
		<< "b = " << b << std::endl
		<< "c = " << c << std::endl;

	return 0;
}

  

C++ class外的 << 重载,输出流,重载示例。不应该定义类内的<<重载

标签:定义   outside   ios   out   定义类   operator   overload   over   rect   

原文地址:https://www.cnblogs.com/alexYuin/p/11965232.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!