ブログトップ 記事一覧 ログイン 無料ブログ開設

神様なんて信じない僕らのために このページをアンテナに追加 RSSフィード

2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
基本的に適当な日記です。あまり鵜呑みにしないでください。土日はWeb離れしているので反応遅れます。

2008-01-24

[]もしかしてCの奴らは代入やキャストでポインタのアドレスが変わらないとか思っているのか?

class A
{
public:
    A (){}
    virtual ~A (){}
};

class B
{
public:
    B (){};
    virtual ~B (){};
};

class C : public A, public B
{
public:
    C (){}
    virtual ~C (){}
};

int main()
{
    C* c = new C();
    A* a = c;
    B* b = c;
    
    printf("c:%p\n", c);
    printf("b:%p\n", b);
    printf("a:%p\n", a);
    
    delete c;
    return 0;
}

a,b,cが全て同じアドレスであると思っている奴はクソして寝ろ。

って、怖い人が言ってました><

neodenjinneodenjin 2008/01/25 07:23 Cにはclassの概念ないし…。

IsoparametricIsoparametric 2008/01/25 07:45 正論orz...

きむら(K)きむら(K) 2008/01/25 09:11 Cでも指す型によってポインタの値が変わる可能性がないわけじゃないと思う。
ただし、ふつー目にするアーキじゃそんなことはないだろうけど
(自分も見たことはない)。

IsoparametricIsoparametric 2008/01/26 16:13 >きむら(K)さん
なるほど。ありがとうございます。
reinterpret_castに相当するCのキャストはアドレス保持だと思ってました。
Cだと可変長のデータ構造を記述する場合に、
アドレス値が変わらないことを期待するコードを書いてしまったりするので
意識してみます。><

かもめかもめ 2008/01/31 20:30 多重継承してりゃ、そりゃそうだろ

IsoparametricIsoparametric 2008/01/31 21:53 その通りですよ

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/Isoparametric/20080124/1201185062