答えて
はい、もちろん可能です。引数を必要としないコンストラクタは、デフォルトのコンストラクタです。
まあ、クラスA {public:A(){/ *あなたの体はここに* /}}; –
@ジェームズ:私は確かにしません*私の体は '公開'に表示されません! – fredoverflow
@FredOverflow:あなたは、その人の身体が公開されるべきプログラマーのようなものがあるかのように言います。私は形をしています - 「丸い」は形ですね。 –
コンストラクターは、クラスのメンバーを初期化するために使用されます。だから、確かにどんなコンストラクタもボディを持つことができます。自分自身にコンストラクタを提供することで、デフォルトコンストラクタにちょうど乗っています。
class foo
{
int x ;
public:
foo() // default constructor
{
x=10; // How ever you can achieve this with initializer lists too.
}
};
はいデフォルトのコンストラクタ(つまり、パラメータを持たないコンストラクタ)は、他のコンストラクタと同じようにボディを持つことができます。これは "デフォルト"のコードを初期化するのに適しています。メンバ変数を適切な値に設定します。おそらくポインタをnullに設定するか、コンポーネントオブジェクトを割り当てます。
おそらく、「デフォルト」という言葉が混乱の原因ですか?特定のパラメータなしで呼び出されるという点ではデフォルトですが、定義がない場合はデフォルトである必要はありません。
デフォルトコンストラクタを明示的に指定する必要はありません。しかし、先に進んで明示的に実装することをお勧めします。このようにして、デフォルトの動作に頼らずに、本当に必要なものになります。
パブリックのデフォルトコンストラクタを実装する場合は、空であっても確実にボディが必要です。
場合によっては、保護されたまたは個人用のctorを持っていても問題ありません。 ctorがプライベート(非表示のコンストラクタと呼ばれます)の場合、ctorはprivateであるため、呼び出すことができないため、関数本体がない場合はokです。
死体安置所はその通りです - > –