- 1. 概要
- 2. 暗黙のコンストラクタ・明示的コンストラクタによる違い
1. 概要
この項は、C言語でなく、C++ の言語仕様になります。
C/C++ に関しては、人に教えるくらいはできると思っていますが・・・。
まだまだ、甘いといいますか、知らない言語仕様がありました。
2. 暗黙のコンストラクタ・明示的コンストラクタによる違い
下記のようなソースを書いていて
実行した場合、15~16行の出力も、18~19行の出力も、同じようなもの(不定値になるので何が出力されるのかわからん)になると思っておりました。
あにはからんや・・・。
実行してみると・・・。
これは、12行目と、13行目の宣言の違いによるものだそうで・・・。
12行目は、明示的にコンストラクタを呼んでいるために、初期化が働いて、0 になるそうなのです。
13行目は、暗黙のコンストラクタになっているため、初期化されることはなく不定値がはいったままになるそうです。
まぁ、この場合も
のように明示的に初期化を行えば、以下の結果が得られるわけですが・・・。
|
    |