У меня есть приложение, представляющее собой сочетание C++ и object-c.C++ класс с объективом-c friend
Довольно много классов C++ существуют только как фасады для доступа к базовому объекту object-c из остальной части приложения x ++.
Моя проблема - один из элементов дизайна: класс object-c должен перезванивать в класс C++ с помощью набора методов, которые я бы предпочел отмечать как private - никакой другой класс C++ (даже не производные классы) будьте возиться с ними.
Но я не могу пометить их как частные, так как, похоже, не существует способа создания «-классных» методов класса класса C++.
Я рассмотрел обман и использование макросов, чтобы пометить методы C++ как общедоступные, если определено __OBJC__
, но это изменяет оформление метода и приведет к ошибкам ссылок.
Кто-нибудь еще столкнулся с этим?
// MyView.mm
@interface MyView : NSView {
@public
CMyView* _cpp;
}
-(void)drawRect:(NSRect)dirtyRect {
CGContextRef cgc = (CGContextRef)[[NSGraphicsContext currentContext]graphicsPort];
_cpp->Draw(cgc);
}
...
// MyView.h
class CMyView {
id _view;
public:
// this method should be private. It exists ONLY for the MyView obj-c class.
void OnPaint(CGContextRef cdc);
};
lol. класс оболочки для переноса моего класса wapper. –
Yup, это радость Obj-C++ –
Это современная разработка программного обеспечения, написание слоев и оберток – Lothar