[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ども、こんばんわ~
久しぶりに登場のZAKIです
学校ではラボにちょこちょこ出現していますけどねw
製作もそろそろ終盤
完成に向けてラストスパートをかけているころじゃないでしょうか
今年の2年生の作品は完成度が高いのが多そうなので楽しみです
寒いですが、風引かないように体調には気をつけましょうね
さて、今回は「C++でクラスの不思議」です。
まず、このコードを見てください。
#include <stdio.h>
//インターフェイスA
class A {
public:
virtual void MesA() = 0;
};
//インターフェイスB
class B {
public:
virtual void MesB() = 0;
};
//実装クラスC
class C : public A , public B {
public:
void MesA() { printf("Aのメソッドです。\n"); }
void MesB() { printf("Bのメソッドです。\n"); }
};
//メイン関数
int main()
{
C c;
void * pVoid = NULL;
B * pB = NULL;
pVoid = (void *)&c;
//普通にキャストした場合
pB = (B *)&c;
pB->MesB();
//void *を通してキャストした場合
pB = (B *)pVoid;
pB->MesB();
return 0;
}
さぁ、このコードを実行したとき、どういう結果が出るでしょうか?
「あれ?」と思うような結果になりませんか?
COMMENT