こんにちは。 最近勉強し始めたc#でWPFをやってみましたが、もう見たくもありません。 さて、今日はc++を使っていても意外になかなか覚えない、コンストラクタの暗黙の宣言 / 非宣言をまとめておきたいと思います。 関連して、よく問題になる暗黙のコピー、ムーブの問題についても書き留めておこうと考えています。 コンパイラが用意してくれる特殊関数は以下になります。(c++14時点) デフォルトコンストラクタ コピーコンストラクタ コピー代入演算子 ムーブコンストラクタ ムーブ代入演算子 デストラクタ 何事もなければこれらが全て暗黙的に宣言・定義されます。( class something {}; ) 平和ですね。みんながみんなこうであればよいのですが、そうはいかないのです。 #コンストラクタが暗黙に宣言されるとき、されないとき ざっくり以下に表にまとめました。 なお、constructorをct
