【C++11】移譲コンストラクタと指定イニシャライザ

C++11では、待望の移譲コンストラクタが入りました。

引数の型が違うコンストラクタを複数記述するときなどに、1つのコンストラクタに集約する機能です。引数値の省略でも一部のコンストラクタはまとめることができますが、引数の型が違う場合は不可能でした。

これまでコンストラクタから同じクラスのコンストラクタを呼び出すことができなかったのです。このため、各コンストラクタの初期化式に各メンバの初期化処理を並べるはめになっていました。これは、メンバの数やコンストラクタの数が多いとメンテナンスがたいへんでした。

積極的に使っていきたいものです。

Objective-C, Swiftなどのほかの言語では、「指定イニシャライザ」という機能がありました。

前の記事:【本日のOOP】Tell-Don't-Ask 次の記事:2021年、新年あけましておめでとうございます

コメントする