私は次のクラスがあるとします。これは定義されていますか?
struct A{
void method(A& otherA) const{
/* Mutate otherA */
}
};
をし、後で私はこれがあります。
A myA;
myA.method(myA);
を私はmethod
がthis
インスタンスが変更されないことをコンパイラに告げてきたが、コンパイラがいることをわかっていませんパラメータとしてthis
インスタンスを渡すことはできますか?
私はこれを行うことによってものを壊すことができますか?これは定義された動作ですか?
はいできます。コンパイラは、それらが同じインスタンスかどうかを知ることができませんでした。渡されたパラメータを変更したくない場合は、パラメータ型を 'const'にする必要があります。 – songyuanyao
@songyuanyaoいいえ...しかし、私はそれを変更したいです – DarthRubik
それは大丈夫でしょう。渡された引数で変更することができます。 – songyuanyao