Для первого в C ++ это может выглядеть так:
class MyClass
{
bool m_cancelled;
public:
bool isCancelled()
{
return m_cancelled;
}
void setCancelled(bool b)
{
m_cancelled = b;
}
};
В качестве альтернативы я обнаружил, что большинство классов C ++, которые реализуют методы доступа, обычно используют соглашение об именах getXyz
и setXyz()
, которое весьма отличается от типичного соглашения Objective C, состоящего только из xyz
и setXyz:
, поэтому может иметь смысл назвать метод isCancelled()
getCancelled()
.
Для типов указателей это может быть сложно. Не существует единственной модели владения памятью, как в случае с Cocoa, поэтому трудно точно передать, что именно должно делать свойство retain
, но в C ++ есть такие изящные мелочи, которые называются smart pointers . Узнайте, как интеллектуальные указатели и какой тип интеллектуальных указателей полезен для других типов данных / классов. Например, вы можете найти boost::shared_ptr
полезным.
Свойство только для чтения в C ++, вероятно, будет выглядеть примерно так:
class MyClass
{
int m_someProp;
public:
int getSomeProp()
{
return m_someProp;
}
MyClass(int initialValue) : m_someProp(initialValue)
{
// m_someProp can still be altered anywhere within any method within
// MyClass, but users of MyClass will only have access to the value
// via getSomeProp()
}
}