次のような固有のデータ型にインクリメントとデクリメントを適用できることを理解しています。
int a;
a++;
a--;
...等。
ただし、次のコードで&
は、行のを省略するoperator int& ( ) { return value; }
と、コンパイルエラーが発生します。&
ここで、使用によって増分が可能になる方法と理由を説明してください。
#include <iostream>
class Foo {
public:
int value;
operator int& ( ) { return value; }
};
int main ( ) {
Foo p;
p.value = 10;
p++;
std::cout << p << std::endl;
std::cin.get ( );
return 0;
}