ページ 11

C++のデストラクタとコンストラクタについて

Posted: 2017年6月01日(木) 16:04
by 黒川
下記認識正しいかどうかお尋ねします。

1.子クラスの某constructorの引数リストと親クラスの某constructorの引数リストがまったく同じであれば、”:”で親のconstructorをコールする必要はなく、
自動的に親のそのconstructorをコール直前に先にコールされる。

2.同じことに、distructorの場合も基本同じで、ただ、同じ引数を有する親のdistructorが最後にコールされる。

3.引数同じのconstructorが親クラスになければ、どうなるのでしょうか?

4.必要に応じて子クラスのconstructorに”:”で親のconstructorをコールすることは
大丈夫でしょうかーーー例:
subClass(...):supperClass(...)
{

}

宜しくお願いします。

Re: C++のデストラクタとコンストラクタについて

Posted: 2017年6月01日(木) 19:45
by YuO
黒川 さんが書きました:下記認識正しいかどうかお尋ねします。
なので,「認識が正しいかどうか」を訊ねられているものと考えます。
黒川 さんが書きました:1.子クラスの某constructorの引数リストと親クラスの某constructorの引数リストがまったく同じであれば、”:”で親のconstructorをコールする必要はなく、
自動的に親のそのconstructorをコール直前に先にコールされる。
正しくないです。
オフトピック
根拠:ちょっと古いですがISO/IEC 14882:2011 12.6.2 Initializing bases and members / Paragraph 8。
12.9にInheriting constructorsというのがあるが,これは意味が異なる
黒川 さんが書きました:2.同じことに、distructorの場合も基本同じで、ただ、同じ引数を有する親のdistructorが最後にコールされる。
distructorとは?
destructorだとしても,destructorとは何かを知っていると「同じ引数を有する」という表現が出てくるはずが無く,
根本的なところでdestructorについて正しく認識していないと思われます。
黒川 さんが書きました:3.引数同じのconstructorが親クラスになければ、どうなるのでしょうか?
あなたの認識ではどうなのですか。
黒川 さんが書きました:4.必要に応じて子クラスのconstructorに”:”で親のconstructorをコールすることは
大丈夫でしょうかーーー例:
subClass(...):supperClass(...)
{

}
あなたの認識ではどうなのですか。