続インタフェース
プロパティを含んだインタフェース。あと、プロパティのアクセス修飾子も。
#include "stdafx.h" using namespace System; interface class IFoo { // getのみ property int Bar { int get(); } // setのみ property int Baz { void set(int value); } // getとset property int Qux { int get(); void set(int value); } }; ref class Foo : IFoo { public: virtual property int Bar { int get() { return 0; } } virtual property int Baz { protected: // プロパティの明示的実装 void set(int value) = IFoo::Baz::set {} } virtual property int Qux { public: int get() { return Quux; } void set (int value) {Quux = value; } } // ちなみに、C#2.0同様プロパティはget/set毎にアクセス修飾子を変えられる property int Quux { public: int get() { return 0; } private: void set(int value) {} } }; int main(array<System::String ^> ^args) { Foo^ foo = gcnew Foo(); IFoo^ ifoo = foo; // 明示的に実装されたプロパティ、IFoo経由でないとアクセスできない // foo->Baz = 10; ifoo->Baz = 10; // getはpublicだが、setはprivateなプロパティ int n = foo->Quux; // foo->Quux = n; return 0; }