Заголовки функций в стиле C ++ в Objective-C?

0

У меня есть функция, которую я хочу объявить и использовать в типичном стиле C++ в классе.

Определение гипотетического примера из файла.mm:

float MyClass::getRectArea(float width, float height){
  return width*height;
}

Как я могу объявить эту функцию в файле заголовка/файле класса Object-C?

@interface MyClass

//???

@end
Теги:

3 ответа

1

Вы можете просто написать его как функцию, как и в C++ - только это не будет частью класса, потому что функции не являются частью классов в Objective-C. Если вы хотите, чтобы это было частью класса, вы можете сделать его методом класса в соответствии с:

+ (float)rectAreaWithWidth:(float)width height:(float)height {
    return width * height;
}

Я бы, вероятно, не сделал его методом экземпляра, как это предлагается в другом ответе, потому что он действительно не имеет ничего общего с конкретным значением объекта - это чистая функция его аргументов.

0

Вы можете объявить это как

-(float)getRectArea:(float)width getheight:(float)height; 

Затем в файле.m вы можете определить его как

-(float)getRectArea:(float)width getheight:(float)height {
     return width*height;
 }

Вы можете назвать это следующим образом

float area = [self getRectArea:5.0 getheight:4.0];

Для получения дополнительной информации и объяснения см. Синтаксис метода в Objective C

0

Если вы хотите, чтобы MyClass был объектом C++, вы должны создать заголовок, как обычно, с C++.

MyClass.h

class MyClass
{
  public:
    float getRectArea(float width, float height);
};

Ещё вопросы

Сообщество Overcoder
Наверх
Меню