[解決済み】C++で参照渡しよりポインタ渡しの方がメリットがあるのか?
2022-04-07 02:47:42
質問
C++で参照渡しとポインタ渡しを比較すると、どのような利点がありますか?
最近、関数の引数を参照渡しではなく、ポインタで渡している例をよく見かけます。 これには何かメリットがあるのでしょうか?
例
func(SPRITE *x);
の呼び出しで
func(&mySprite);
vs.
func(SPRITE &x);
の呼び出しで
func(mySprite);
解決方法は?
ポインタはNULLパラメータを受け取ることができますが、参照パラメータはそうではありません。 もし、オブジェクトを渡せない場合は、参照パラメータではなくポインタを使用してください。
また、ポインタで渡すと、オブジェクトが値で渡されるのか、参照で渡されるのかを呼び出し先で明示的に確認することができます。
// Is mySprite passed by value or by reference? You can't tell
// without looking at the definition of func()
func(mySprite);
// func2 passes "by pointer" - no need to look up function definition
func2(&mySprite);
関連
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】coutはstdのメンバではない
-
[解決済み】クラスのコンストラクタへの未定義参照、.cppファイルの修正も含む
-
[解決済み] 数値定数の前にunqualified-idを付けて、数値を定義することを期待する。
-
[解決済み] 配列のベクトルを扱う正しい方法
-
[解決済み] const std::string & をパラメータとして渡す時代は終わったのでしょうか?
-
[解決済み] パラメータと戻り値におけるポインタと値の比較
-
[解決済み] リファレンスとポインタの使い分け
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み] なぜ 'this' はポインターで、参照ではないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み】getline()が何らかの入力の後に使用されると動作しない 【重複あり
-
[解決済み】非静的メンバ関数への参照を呼び出す必要がある
-
[解決済み】抽象クラス型の無効なnew-expression
-
[解決済み】IntelliSense:オブジェクトに、メンバー関数と互換性のない型修飾子がある
-
[解決済み】「std::operator」で「operator<<」にマッチするものがない。
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】ファイルから整数を読み込んで配列に格納する C++ 【クローズド
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)