0

ゲームをObj-CからC++に移植しています。そして、Obj-CプロトコルをC++で同等のものに変換しなければならないところに行き詰まりました。C++で同じ機能を実現するための正しい方法は何であるか混乱しています。

お知らせ下さい。

@protocol A <NSObject>

    -(void) B:(NSObject*)data;

@end


@interface callBack: NSObject
{
    id<A*> delegate;
}
4

1 に答える 1

5

virtual純粋なメソッドでクラスを作成するプロトコルに似たものを実現できます。そのプロトコルに準拠するには、そのようなメソッドをオーバーライドする必要があります。

「プロトコル」宣言

class ImageDelegate {
    public:
        virtual void getImage(UIImage *) = 0;
}

次にImageDelegate*、あなたがするように参照してくださいid<ImageDelegate>

class ResInfoCallback : public NSObject {
    public:
       ImageDelegate *delegate;
}

最後に、「プロトコル」を実装するクラスが必要です。これはvirtual、「プロトコル」クラスの純粋なメソッドをオーバーライドすることを意味します。

class YourClassConformingToTheProtocol : public ImageDelegate {
    public:
        virtual void getImage(UIImage *image) {
            //do stuff
        }
}

最後に、クラスには大文字の名前を使用してください。

于 2013-01-03T23:22:47.327 に答える