問題タブ [call-by-value]

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.

0 投票する
1 に答える
44 参照

c++ - コピー コンストラクターの呼び出しを避けるべき 2 つのケース

コピー コンストラクターの呼び出しに関する 3 つのケースについて学びました。

1. 変数が同じクラスのオブジェクトから初期化されている

2. クラスの値パラメーターで関数が呼び出される

3. 関数がクラスのオブジェクトである値を返す

また、教科書では、上記の 2 つのケース (case2 と 3) について、コピー コンストラクターの呼び出しを避けるために、参照渡しを使用すると述べています。

いくつかの情報を検索しましたが、正確には理解できません。

例(私は自分のコードを作りました)

これについていくつかの情報を見つけました。

まず、クラスオブジェクトである引数を渡すとき、引数が値ではなく参照形式の場合、関数が終了するとすぐにデストラクタを呼び出しません。メイン関数の終了時にデストラクタを呼び出します

次に、パラメーター形式が値による呼び出しか参照による呼び出しかに関係なく、引数をコピーするときにコンストラクターを呼び出します (コードでは、String &s または String s)。

私は正しいですか?

0 投票する
1 に答える
181 参照

c++ - C ++で再帰を使用しているときに2次元配列を渡すことができません

関数に aを渡す方法について、 stackoverflowで回答を見ました2d-array。そのうちの 1 つを試してみると、3 つ以上のメソッドが指定されていて、問題なく動作しました。しかし、バックトラックでそのメソッドを使用しようとすると、エラーが発生します。

グローバルに宣言してみましたが、このように使用する方法を学びたいです

エラー: int(*)[5] から int [-fpremissive] への無効な変換