получить доступ к закрытым данным члена в C ++? - PullRequest
1 голос
/ 21 января 2012

В классе A я определил приватные данные члена char * d;.

А также в классе A я перегружаю оператор =, который принимает параметр const A &other и выполняет присваивание.

В то время, когда я перегружаю оператор =, я понял, что моя Visual Studio C ++ не дает мне предупреждения, когда я пытаюсь написать что-то вроде d = *other.d.

Итак, я здесь, чтобы спросить, почему мне разрешено это делать? Я еще не запускал эту программу, но просто любопытно, почему я не получил предупреждение для этой линии. На мой взгляд, частные члены могут получить доступ только к получателям.

Так я не прав?

1 Ответ

10 голосов
/ 21 января 2012

Ограничения доступа действуют для класса , а не для экземпляра - class A методы могут обращаться к личным данным для любого экземпляра класса, а не только this.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...