Объективные свойства c неуправляемому c ++ - PullRequest
0 голосов
/ 21 ноября 2011

как это можно перевести в неуправляемый c ++ из цели c

1

property ( nonatomic, assign, getter = isCanceled ) BOOL canceled; 

кстати - isCanceled = false;так почему бы не записать

property ( nonatomic, assign) BOOL canceled; 

как в другой части кода с другими операторами:

2

property ( nonatomic, retain ) Im* img;

и эта конструкция просто постоянна в c ++?

3

свойство (неатомное, только для чтения) Параметр * firstPar;так это в c ++ что-то вроде переменной

const Parameter* firstPar;

?

и как правильно перевести первое и второе свойства ???

1 Ответ

0 голосов
/ 21 ноября 2011

Для первого в 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()
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...