Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

C++から見たObjective-C - プロトコル

タグ: C++ Objective-C

既に前の記事で使っているが、これはObjective-Cにおける「インタフェース(Java用語?)」である。

@protocol Foo
- (void)append:(int)n;
@end

@interface Bar : NSObject <Foo>
{

C++では「純粋仮想関数しか持たないクラス」がこれに当たり、意識して「このようなクラス以外を多重継承しない」ことで、プロトコルとほぼ同等の働きをする。

class Foo
{
public:
	virtual ~Foo() {}
	virtual void append(int n) = 0;
};

class Bar : public Foo
{

同等と言っても、意図的にクラスの機能を限定して使っているだけなので、ルールを破る(プロトコルとして作っていたクラスにメンバ変数を追加したり、プロトコルクラス以外を多重継承したりする)のは容易。

スポンサーサイト

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://idlysphere.blog66.fc2.com/tb.php/119-5941d9e3
この記事にトラックバックする(FC2ブログユーザー)

Appendix

タグ

Blog内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。