Olası Çoğalt:
Class Data Encapsulation(private data) in operator overloadingKapsülleme ihlali var mı?
Bu örneğe bakınız. Eklenti() fonksiyonunda
class myClass {
int a;
public :
myClass() {
this->a = 0;
}
myClass(int val) {
this->a = val;
}
void add(myClass &obj2) {
cout << "Result = " << this->a + obj2.a;
obj2.a = 0;
}
void show() {
cout << "a = " << this->a;
}
};
int main() {
myClass obj1(10), obj2(20);
obj2.show(); //prints 20.
obj1.add(obj2);
obj2.show(); //prints 0.
return 0;
}
, ben aslında obj1 bağlamında eklenti() aradım zaman obj2 özel bir üyesinin değerini ulaşamıyorum. Bu bir kapsülleme ihlali değil mi?
İlk başta derleyicinin bana bir hata vereceğini düşünüyordum, ama yapmadı.
Derleyicinin şikayet etmesini istemediyseniz, bunun yerine 'const' yerine bir' const' başvurusunu bildirme neden olmaz? –