- 549 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 12:17:13 ]
- 質問させてください。
C++言語で interface A { virtual void MesA() = 0; }; interface B { virtual void MesB() = 0; }; interface C : public A,public B {}; class D : public C { public: void MesA() { printf("A class\n"); } void MesB() { printf("B class\n"); } }; int main() { D d; void *p = (D *)&d; B *bbb = (B *)p; B->MesB(); } こうするとAのMesAのメソッドが呼ばれてしまいます。 Cの中身は空ですが、他のメソッドが書かれています。(このサンプルでは関係ないと思うので空にしました) 変数pを一度C型にキャストしてからB型にキャストするとうまくいくのですが、 なるべく、そうはしたくないので困っています。 原因、解決策のわかる方教えてください。 環境 Visual Studio 2003 .NET 2005でも同じでした。 改行が多すぎるとエラーが出たのでみずらくてすいません。
|

|