(続き) ctor/dtorに関する注意

コンストラクタ、デストラクタをコンパイラに自動生成させる場合、当然かもしれませんがそれらはインライン化されます。インライン化というか何も処理が発生しないというか。


しかしもちろん、

[foo.h]
class Foo {
public:
  Foo();
  ~Foo();
};
[foo.cpp]
Foo::Foo(){}
Foo::~Foo(){}

こう書いてしまうと構築、解体処理が.cppに記述した関数へのcall命令に変換されますから、非効率です。気をつけましょう。何も処理をしないなら、

[foo.h]
class Foo {
public:
  Foo(){}
  ~Foo(){}
};

で良いでしょう。