Supponiamo che io ho la seguente classe:È definito?
struct A{
void method(A& otherA) const{
/* Mutate otherA */
}
};
E poi ho questo:
A myA;
myA.method(myA);
Ho detto al compilatore che method
non cambierà l'istanza this
, ma fa il compilatore rendersi conto che Potrei passare l'istanza this
come parametro?
Potrei interrompere le cose facendo questo? Questo comportamento definito?
Sì, puoi farlo. Il compilatore non poteva sapere se sono la stessa istanza. Dovresti impostare il tipo di parametro 'const' se non vuoi che il parametro passato sia cambiato. – songyuanyao
@songyuanyao No .... ma voglio cambiarlo – DarthRubik
Quindi andrà bene. Puoi cambiarlo tramite argomenti passati. – songyuanyao