Ну, например, у меня есть класс карты, в котором есть несколько членов: sizeX, sizeY, вектор тайлов, имя и т.д.
Существует 2 основных подхода к управлению его переменными, доступ к которым осуществляется извне:
- инкапсуляция, но добавляет много кода и больше ввода (константные функции setX() и getX())
- иметь переменные, к которым часто обращаются извне, в качестве общедоступных членов и упростить их
Мне не нравится ни то, ни другое. Мне пришла в голову идея: член класса, который снаружи действует как константа (так что вы можете легко получить к нему доступ как object.member, но это безопасно), а внутри класса он не является константой. Однако, насколько я знаю, в C++ этого нет. Единственный (уродливый) обходной путь, который я знаю, - это сделать все константным и использовать константное приведение внутри функций класса.
Есть ли лучший подход для этого в С++ 11? Есть ли для него ключевое слово?
const&
для закрытого члена должен работать, но это не избавит вас от необходимости много печатать (и это выглядит странно). - person Mat   schedule 23.01.2013MEMBER(int,x)
. - person Marc Glisse   schedule 23.01.2013