Почему сложный класс C ++ использует геттеры и сеттеры? - PullRequest
1 голос
/ 31 марта 2011

Почему сложный класс C ++ использует функции для модификации вещественной и мнимой частей?Разве публичные переменные-члены не будут работать так же хорошо, не имея дело с геттерами и сеттерами?Все, что было спрятано, это частное имя реальной и мнимой частей.

Ответы [ 2 ]

15 голосов
/ 31 марта 2011

Простая причина этого заключается в том, что она позволяет реализации меняться со временем, даже если на самом деле она может меняться не часто (если вообще когда-либо).Если у вас есть класс, и вы изменяете его переменные экземпляра, теперь вы зависите от тех переменных экземпляра, которые существуют, вместо того, чтобы иметь открытый интерфейс, который мог бы остаться прежним без изменений (несмотря на изменение реализации, например, с зависимым от платформы кодом).

Ответ Фемарефа также верен - методы могут допускать появление определенной логики, которая может потребоваться.Без этого вы можете не получить правильные данные от объекта.

7 голосов
/ 31 марта 2011

Возможно, потому что в методах есть дополнительная логика, которая невозможна для открытых переменных-членов.

...