2009-05-21 3 views
0

Будет ли наилучшим способом определения типа доступа для переменных-членов класса, который я создаю, будет выглядеть следующим образом: извините, если эта таблица трудно увидеть, это то же самое таблица показана http://www.cplusplus.com/doc/tutorial/inheritance/)?Определяющий тип доступа для переменных-членов класса

Access      public protected private 
members of the same class  yes  yes   yes 
members of derived classes yes  yes   no 
not members     yes  no   no 
+3

Почему вы спрашиваете? Не верьте учебнику? –

+0

Теперь таблица выстраивается в линию. Да. –

+0

Nikolai: Я просто не уверен, что самый простой способ помочь мне решить. Мартин: как вы столкнулись с таблицей? – stanigator

ответ

1

Таблица правильная, если это то, о чем вы просите.

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

Нет «лучшего способа» - это правила, представленные разумным образом.

1

Вы должны добавить другу классы/методы там, но дружба ясна: в C++ друзья могут касаться ваших интимных частей.

+0

Это смешно ;-) – lothar

+0

Не мое, хотя :) –

0

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

0

Это правильно, кроме друзей.

Это означает, что для любого класса, который является более чем C-подобной структурой более или менее связанных данных, все переменные-члены должны быть частными. Практически никогда не было оснований использовать защищенные переменные.

Смежные вопросы