C++ class 内的 () 重载示例
#include <iostream> // overloading "operator () " outside class ////////////////////////////////////////////////////////// class Rectangle { public: Rectangle(const int w, const int h) : width(w), height(h) {}; ~Rectangle() {}; int& operator() (const size_t i); public: int width; int height; }; ////////////////////////////////////////////////////////// int & Rectangle::operator()(const size_t i) { if (i == 0) return width; else return height; } ////////////////////////////////////////////////////////// std::ostream& operator<< (std::ostream& os, const Rectangle& rec) { os << rec.width << ", " << rec.height; return os; } ////////////////////////////////////////////////////////// int main() { Rectangle a(40, 10); std::cout << "w = " << a(0) << std::endl // 输出 40 << "h = " << a(1) << std::endl // 输出 10 ; return 0; }