IMyInterface
次のように定義されたC#インターフェイスがあるとします。
// C# code
public interface IMyInterface
{
string MyProperty { get; }
}
MyConcreteClass
このインターフェイスを実装し、ヘッダーが次のように宣言されているC ++/CLIクラスもあるとします。
public ref class MyConcreteClass : public IMyInterface
{
public:
virtual property String^ MyProperty
{
String^ get() sealed { return String::Empty; };
void set( String^ s ) sealed { };
}
};
明らかに、インターフェースを介して仮想メンバーにアクセスする場合、ランタイムはクラス内の実装を探す必要があり、メンバーが仮想でない場合よりも遅くなります。
IMyInterface obj;
obj->MyProperty = "HELLO";
具体的なオブジェクトタイプで仮想メンバーを直接使用した場合のパフォーマンスについて具体的に質問しています。MyProperty
仮想メンバーだった場合、これは遅くなりますか?
MyConcreteClass obj;
obj->MyProperty = "HELLO";