<< 22/25 >>
First Last

コンストラクタ

問題: new とコンストラクタ

解決: 2回関数呼ぶだけ

  C* c = new D();
  4008b5:       bf 08 00 00 00          mov    $0x8,%edi  // 0x8 == sizeof(D)
  4008ba:       e8 e9 fe ff ff          callq  4007a8 <operator new(unsigned lon
g)@plt>
  4008bf:       48 89 c3                mov    %rax,%rbx
  4008c2:       48 89 df                mov    %rbx,%rdi
  4008c5:       e8 5c 02 00 00          callq  400b26 <D::D()>

コンストラクタは確保したメモリアドレスを(隠れた)第一引数にする