一般に、単一の引数を持つコンストラクタでexplicitキーワードを使用することをお勧めします。しかし、C++ 11では、複数の引数を持つコンストラクタを暗黙的な変換に使用できます。したがって、> 0引数のすべてのコンストラクタに明示的なキーワードを適用することをお勧めしますか?C++用の複数のパラメータを持つ明示的なキーワードとコンストラクタ11
1
A
答えて
0
明示的な一般的なルールは、このコンストラクタを暗黙的に呼び出すかどうかです。
「はい」の場合は明示しないでください。
いいえの場合は明示してください。
1つの引数ctorsの場合、必要に応じてint
をdouble
に変換すると、その型からの変換は無損失で無害です。
> 1引数の場合は、{}
ベースの構築を有効にするかどうかを決定します。ときどきそれは良い考えですが、時には悪い考えです。
C++ 11および14では、型を移動またはコピーできないときに関数から値を返すためには、構造体が必要です。場合によっては、何らかの理由で「暗黙的な{}
の使用」を避けたい場合は、{}
をより明示的にするタグタイプを使用します。
C++では、本当に必要な理由が少なくなります{}
prvaluesはもはやオブジェクトではなく構築命令です。つまり、return T(blah)
は、T
を返す関数内のT
を移動/コピーせず、むしろblah
からそれを構成します。正確にあなたが{}
をブロックしたい
は意見の問題、およびSO Q & A.
には適していません関連する問題
- 1. multi-argコンストラクタの明示的なキーワード?
- 2. デフォルトと明示的なコンストラクタ
- 3. ポインタをとるC++明示的コンストラクタ
- 4. C++明示的変換コンストラクタ
- 5. 明示的なコンストラクタと読み取り専用のプロパティを持たないクラス
- 6. C++ 11スレッドプール - 入力パラメータを持つタスク
- 7. コンストラクタ内の複数のパラメータを持つ例外
- 8. 明示的な移動コンストラクタ?
- 9. 複数のパラメータを持つUnity/Caliburn Micro、注入コンストラクタ
- 10. 複数のコンストラクタを持つC++(C++ 98)ファンクタ?
- 11. Kotlin:このキーワードを持つ2次コンストラクタ
- 12. 明示的なコンストラクタの特別な演算子C++
- 13. 明示的にコンストラクタ
- 14. 明示的な型と明示的な型の比較 - C#
- 15. 明示的な関数で定義されたパラメータを持つメタデコレータ
- 16. 明示的な型パラメータを持つ汎用レコードをインスタンス化する方法は?
- 17. 複数のキーワードを持つMySQL MATCH
- 18. 複数のパラメータを持つcreateQueryBuilderとsetParameter?
- 19. Web Api 2複数のパラメータを持つ一般的なパススルーメソッド
- 20. C++ 11 visual_studioでのthread_localキーワードのサポート11
- 21. パラメータ化されたコンストラクタを複数持つ抽象クラス
- 22. 明示的な引数を1つ持つテンプレート
- 23. ユニティ:複数のコンストラクタを持つコンストラクタインジェクション
- 24. c#logging framework - 明示的な名前を持つログファイル
- 25. 明示的なループインポイントとループアウトポイントを持つiOSでのオーディオのループ
- 26. 複数のURLとオプションのパラメータを持つexpress.Router()の使用
- 27. StructureMap既定のインスタンスと追加の明示的な引数を持つ
- 28. 複数の値とnull値を持つパラメータを持つMDXクエリ
- 29. StructureMap明示的なコンストラクタ引数の指定
- 30. c#のパラメータを持つ動的SQLクエリ