我有一个名为MyInteger的类,这个类有一个int类型的数据成员 - 如何重载运算符“=”来返回这个整数?我不允许使用accessor-method返回整数。
数据成员
private:
int number;
功能
int MyInteger::operator=(MyInteger myInteger) {
myInteger = this->number;
return myInteger;
}
我知道这是错误的,我试图进行类型转换,但这也是错误的。
在另一个班级我使用这个整数来打印
cout << number << endl;
我该如何解决这个问题?
答案 0 :(得分:5)
您想要如何使用它的示例根本不使用=
运算符。如何重载operator=
帮助你?
如果您希望能够将MyInteger
个对象插入输出流,则需要overload operator<<
左操作数是输出流,右操作数是MyInteger
个对象
答案 1 :(得分:-6)
我认为你不是指赋值运算符,而是谈论转换运算符。
例如:
#include <iostream>
#include <algorithm>
#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;
}