Overload operator = instead of using accessor
我有一个名为myinteger的类,这个类有一个int类型的数据成员-如何重载运算符"="返回这个整数?不允许使用访问器方法返回整数。
数据成员
1 2 | private: int number; |
功能
1 2 3 4 5 6 | int MyInteger::operator=(MyInteger myInteger) { myInteger = this->number; return myInteger; } |
号
我知道这是错误的,我试过打字,但那也是错误的。
在另一个类中,我使用这个整数只是为了打印
1 | cout << number << endl; |
我如何解决这个问题?
您希望如何使用它的示例根本不使用
如果希望能够将
我认为你不是指赋值运算符,而是指转换运算符。
例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include <iostream> #include #include <iterator> class MyInteger { public: MyInteger() : number( 0 ) {} void operator ()( int x ) { if ( x < 0 ) ++number; } operator int() const { return number; } private: int number; }; int main() { int a[] = { 1, 2, -3, 4, -5, 6, -7 }; int count = std::for_each( std::begin( a ), std::end( a ), MyInteger() ); std::cout <<"There are" << count <<" negative values" << std::endl; } |