#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::istream& operator>> (std::istream& is, Rectangle& rec) { is >> rec.width >> rec.height; return is; } std::ostream& operator<< (std::ostream& os, const Rectangle& rec) // 这里的 const 是必要的,rec应该是一个常量,请注意 { os << rec.width << ", " << rec.height; return os; } ////////////////////////////////////////////////////////// int main() { Rectangle a(40, 10); std::cin >> a; std::cout << "a = " << a << std::endl; return 0; }