関数またはメンバ関数のデフォルト引数の有効な式は、どのようなものがありますか?デフォルトの関数引数の有効な式
答えて
関数パラメータの型の変数への代入のコンテキスト内で正しいものは何でも。コンパイル時
編集
デフォルト引数は、などのタイプの正しさの点で評価されているが、それらが計算されていないと何の割り当ては、実行時まで行われません。実際の計算/代入は、関数呼び出し時に行われるのではなく、関数呼び出し時に行われるのではなく、関数呼び出し時にクラスが定義されている限り、デフォルトの引数としてまだ定義されていないクラスのコンストラクタを指定することができます。関数宣言/定義の。
例:
#include <iostream>
void foo(int a = std::rand())
{
std::cout << a << std::endl;
}
int main(void)
{
foo();
return(0);
}
1804289383
これは誤りです。実行時にのみ決定できる変数に物を割り当てることはできますが、それらをデフォルトの引数として使用することはできません。たとえば、 'int a = std :: rand()'を実行できますが、 'void Class :: foo(int a = std :: rand())'を実行することはできません。 –
@EmileCormierあなたは間違っています。 – lapk
おっと、申し訳ありません。私は私の誤った先入観が再び私のより良いものになるようにしています。 –
これはC++ 03規格のセクション8.3.6に詳述されています。基本的には、ローカルスコープのものに依存しない式になります。したがって、ローカル変数、関数のパラメータ、または「this」に依存する式は除外されます。
これは、AzzAの答えをうまく補うものです。私は両方の答えを受け入れることができたらいいと思う。 –
- 1. partedの有効な引数
- 2. デフォルトの関数の引数
- 3. 有効な[] .forEach.call関数の引数は何ですか?
- 4. 有効なテンプレート引数
- 5. OCaml:関数の引数のデフォルト値?
- 6. デフォルトの引数を持つSoaplib関数
- 7. バインドされた関数のデフォルト引数
- 8. 関数テンプレートのデフォルト引数C++
- 9. デフォルトの引数を持つPython関数
- 10. 有効なコールバック関数
- 11. 関数のevent.preventDefault()の後でデフォルトを有効にしますか?
- 12. 有効な引数を表示する
- 13. 複数引数の関数の最初の引数のデフォルト値は冗長か?
- 14. ファンクション引数のデフォルトなし
- 15. 有効な関数の宣言
- 16. 有効なフォームの角実行関数
- 17. デフォルトの引数を持つ仮想関数、奇妙な出力
- 18. 関数の引数に無効な引数を与える計算フィールドのサブクエリ
- 19. SSRSのスイッチ式:引数 'VarExpr'は有効な値ではありません。
- 20. Pythonのデフォルトの引数と引数名
- 21. SslStream.DataAvailableない有効な関数
- 22. Django:TypeError: 'x'はこの関数の無効なキーワード引数です
- 23. TypeError: 'encoding'はこの関数の無効なキーワード引数です
- 24. 'initial'はこの関数の無効なキーワード引数です
- 25. 引数としての関数の効率的な使用
- 26. MySQLのin_array関数 - 無効な2番目の引数
- 27. TypeError: 'channel'はこの関数の無効なキーワード引数です
- 28. 'question_text'はこの関数の無効なキーワード引数です
- 29. TypeError: 'ndim'はこの関数の無効なキーワード引数です
- 30. テンプレートのデフォルト引数
もっと具体的にする必要があります。 –
私の質問は意図的に一般的です。私はデフォルトの引数として使用できる表現のタイプを知りたい。 SOはバグを修正するための助けを求めているだけではありません。 –
http://msdn.microsoft.com/en-us/library/e1dbzf09.aspx –