2009-11-26 2 views
0

У меня есть некоторые атрибуты, которые являются константами, так должны ли эти атрибуты быть обнародованы или защищены?атрибут const в классе должен быть общедоступным или защищенным?

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

Но, как я узнал cpp, я подумал, что, если возможно, мы должны попытаться сделать атрибуты защищенными или закрытыми и использовать аксессоры для их изменения ??

Спасибо.

ответ

2

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

Если это постоянный, довольно глупо сделать для него доступ для чтения. А аксессуар для записи не будет работать. Так что не беспокойтесь.

+0

Нет никаких атрибутов read -write для этих атрибутов const, я просто приводил пример в общем случае. – Curious

+0

Я понял это. Я говорю, что константам не нужны аксессоры. Как правило, это просто ненужная бюрократия. –

4

Я думаю, что они должны быть закрытыми или защищенными, если они не имеют отношения к внешнему интерфейсу. Если вы сделаете их общедоступными, кто-то может их использовать. Если вы измените реализацию, а константы уйдут ... oops!

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