[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