C ++のデフォルトの引数にはいくつかの特別なプロパティがありますか?

これは宿題ではなく面接テストの質問です。テストは終了しました。

C ++のデフォルト引数についての正しい記述は次のどれですか?

A. Default Argument cannot be of a user-defined type.
B. Default Argument can never precede non-default arguments
C. Default Argument cannot be of pointer type.
D. Default Argument exist in global heap not function's stack
E. Default Argument are not considered for generating the function's signature. 

私はBとEを選びました。これは正しいのですか?私はDについて確信していません、それも正しいですか?

ベストアンサー

Bは真です。 A、C、Dは偽です。

Eには明確化が必要です。それは、「関数のシグネチャを生成する」という意味に依存します。

コンパイラに関する限り、署名は署名です。デフォルトの引数は関数を呼び出すときのみ重要です。これはデフォルトが代入される場所です。したがって関数には署名が書き込まれています。

「関数のシグネチャを生成する」が「関数のC
++シグネチャが何であるか」を意味する場合、シグネチャは引数がデフォルトであるかどうかは考慮しません。しかし、「関数のシグネチャを生成する」とは、「どのように呼び出すか」を意味する場合、デフォルトを気にします。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です