Другие языки программирования и технологии

Аналог C#-ского get и set в C++ есть? Или там просто надо в классах писать функции типа GetMyValue и SetMeValue?

Если очень хочется, то можно пытаться сделать некий аналог. Например, можно вместо поля с заданным типом завести поле с типом класса, содержащего поле данного типа и переопределенные операторы присваивания и приведения к заданному типу. Если при присвоении нужны другие поля исходного класса, то во вспомогательном объекте придется завести указатель или ссылку на объект содержащий данное поле. Если тип поля класс или структура с некоторыми методами, которые мы хотим у поля вызывать, то такой подход работать не будет, из простого решения, это переопределить оператор -> и к методам таких полей обращаться через него, из более сложных идей, это наследовать вспомогательный класс от типа поля (что потребует специальной обработки примитивных типов) . Тут правда нужно быть осторожным с копированием и обменом объектами класса содержащего такие поля. И если хорошо подумать, поколдовать шаблонами, и использовать свежий стандарт c++0x с биндингами и лямбда-функциями, то, как мне кажется, можно получить кошерный аналог свойств C#. (некоторые наброски http://pastebin.com/AeBkCBkb)
Чингиз Абдусаттаров
Чингиз Абдусаттаров
2 433
Лучший ответ
С++ бывают разные... .

Н-р в Билдере есть _пропрерти (не пропускает англ. мэйл. ру - сорь)

Если нет встроенных средств - решается "ручками" с помощью шаблонов и наследований.
Это что?
в C++ нет свойств и не будет. да в нём они и не нужны.
Carlos, читаем драму тут.
Таких конструкций нет - в Спп используются аксессорные функции (методы)