Всем привет.
Сейчас вот сижу проектирую очередную прогу после недавнего прочтения
Code Complete. В принципе это далеко не первая книга, в которой рекомендуют не делать так:
class cClass
{
public:
int numOfSmthng; // вот такой public доступ к переменной
};
а делать это таким образом:
class cClass
{
public:
int GetNumOfSmthng() const;
vodi SetNumOfSmthng(int newValue);
private:
int numOfSmthng;
};
Так в чём же правда?
Ведь в данном и миллионе подобных случаев это означает тоже самое. Можно даже организовать доступ к атрибуту а-ля свойству (привет Delphi):
class cClass
{
public:
int & NumOfSmthng() { return numOfSmthng; }
private:
int numOfSmthng;
};
И никаких проблем.
Может кто-то что-то выскажет по этому поводу. Потому как реально никаких убедительных доводов против открытых атрибутов ни в одной книге не нашел.
Как вариант можно вспомнить
struct. Конечно все станут кричать, что это, мол, другое дело. Но если абстрагироваться от рассуждений относительно
struct vs class, то все-таки — почему все против
public'a??