Ответ 1
Управляемый С++ не поддерживает автоматические свойства. Вы должны вручную объявить поле поддержки и аксессуаров:
private: String* _internalSomeValue;
public:
__property String* get_SomeValue() { return _internalSomeValue; }
__property void set_SomeValue(String *value) { _internalSomeValue = value; }
С++/CLI поддерживает автоматические свойства с очень простым синтаксисом:
public: property String^ SomeValue;
Обновление (ответ на комментарий):
В С++/CLI вы не можете контролировать доступность каждого метода доступа отдельно при использовании автоматического синтаксиса свойств. Вам необходимо определить поле поддержки и методы:
private: String^ field;
property String^ SomeValue {
public: String^ get() { return field; }
private: void set(String^ value) { field = value; }
}