Метод класса, эквивалентный в C ++ - PullRequest
0 голосов
/ 20 декабря 2011

Есть ли эквивалент метода класса в C ++?Я знаю, что в Objective-C мы можем объявить функцию в заголовке с помощью + (void)aClassFunction; и мы можем вызвать ее с помощью [myClass aClassFunction]; Есть ли способ сделать это в C ++?

Ответы [ 3 ]

6 голосов
/ 20 декабря 2011

static методы достаточно близки (но на самом деле не эквивалентны) заменителям методов класса Objective C. Разница в том, что в C ++ вы не можете переопределить статические методы.

1 голос
/ 20 декабря 2011

Да, используйте статические методы.

Объявите статический метод в файле .h следующим образом:

static void DoSomething();

Реализуйте его в .cpp следующим образом:

void SomeClass::DoSomething()
{
    /* do something */
}

Тогда назовите это так:

SomeClass::DoSomething();
1 голос
/ 20 декабря 2011

Да, используйте static:

class MyClass {
public:
    static int classFunc() { return 45; }
};

cout << MyClass::classFunc() << endl;

Вы можете видеть, что вы получаете к ним доступ через имя класса, за которым следует оператор разрешения области действия, ::, за которым следует имя функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...