2009年07月24日 C++ ではキャストでアドレスが変わる場合があります このごろは組み込みソフトウェア開発でも C++ が使われるようになってきました。C から C++ に移行する際、おそらく誰もが一度は引っかかるのではないかという C++ の挙動について書きます。 C++ では、多重継承した class(struct) のアドレスを扱う際には注意する必要があります。 #include <stdio.h> struct A { int a; }; struct B { int b; }; struct C : public A, public B { }; int main() { C *c = new C(); B *b = c; A *a = c; printf("C = %p\n", static_cast<void*>(c)); printf("B = %p\n", stat