問題タブ [function-declaration]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 関数の typedef を使用して関数を定義できないのはなぜですか?
ISO/IEC 14882:2011(E) の 8.3.5.11 から:
関数型の typedef は、関数を宣言するために使用できますが、関数を定義するために使用してはなりません
標準は、次の例を示しています。
このルールの動機は何ですか? 関数 typedef の潜在的な表現上の有用性を制限しているようです。
c++ - C++ でコンストラクターを呼び出す代わりの関数宣言
ここで B のオブジェクトを初期化することを期待していましたが、代わりに関数宣言を取得しました。
出力は次のとおりです。非クラス型 'B( A( *)() )'*である 'b' のメンバー 'test' の要求
この状況でコンストラクターが呼び出されないのはなぜですか?
c - この関数を正しく宣言する方法は?
私の意図は明らかだと思いますが、これはうまくいきません。
PS私は戻り値を呼び出された変数に格納する必要がありますchar *fileList[260]
。char** fileList.
c - 関数プロトタイプとそのパラメーター宣言リストを宣言する方法は?
ISO/IEC 9899:TC3 6.9.1 を読んだとき -> 例 13
そしてメモ:
[...]
ここで int a, b; パラメータの宣言リストです。これら 2 つの定義の違いは、最初の形式は関数への後続の呼び出しの引数の変換を強制するプロトタイプ宣言として機能するのに対し、2 番目の形式はそうしないことです。
そこで、そのようにコンパイルするための独自のテスト コードを作成しました。(私は、両方の方法を前に宣言する必要があるか、とにかく言及された型定義でプロトタイプを作成する必要があると考えました)
だから私は今尋ねています:この方法の間にパフォーマンス関連の違いはありますか:
そしてこれは?
私が理解しているように、最初の方法では関数呼び出しで複数の変換が回避されるため、違いがあります。これは、型が型になることが保証されているため、パラメーター型への変換が必要ないためです (この場合) size_t
.
しかし、プロトタイプは両方の場合で似ている必要があり、プロトタイプはコンパイラが処理を行うソースであると考えたので、混乱しました。
だから:違いは正確には何ですか?また、ある場合、なぜ最初の方法はめったに (決して) 見られないのでしょうか?
c++ - これを c++ で使用するにはどうすればよいですか?
- 驚いたことに、C++ オブジェクトの名前がクラス名と同じになる可能性があることがわかりました。誰かが私にその理由を説明できますか?
- クラスのオブジェクトを
a
として宣言するa a1()
と、エラーは発生しませんが、コンストラクターは呼び出されません。なぜこうなった?
私のコード: