次のコードについて2つの質問があります。
class cls{
int vi;
public:
cls(int v=37) { vi=v; }
friend int& f(cls);
};
int& f(cls c) { return c.vi; }
int main(){
const cls d(15);
f(d)=8;
cout<<f(d);
return 0;
}
- f(d)= 8がconstオブジェクトを変更しようとするのに、なぜコンパイルするのですか?
- const属性を削除した後でも、なぜ15が出力されるのですか?