問題タブ [member-variables]
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++ - オブジェクトまたは参照の一部
クラス A にメンバー変数 (参照ではなくオブジェクト) m があると仮定します。オブジェクト「o1」を定義したとき、式「o1.m」もオブジェクト型です。参照 'q1' を定義すると、式 'q1.m' も参照型になります。
その結論は正しいですか?それが本当なら、C ++標準ドキュメントに関係する句は何ですか?
c++ - 基本クラスの派生クラス インスタンス
これは私が理解しようとしているコードです。特に用途はありません。私は何が起こるかを理解しようとしているだけです。
VS2013 を使用すると、「派生クラス: クラスにコンストラクターがありません」というエラーが表示されますが、これは正しいエラーではないと思います。
私は最初、ポインターではなく、derivedClass インスタンスを使用していました。そして、それはセミコロンに関する奇妙なエラーを私に与えていました. 次に、受け入れられた答えがインスタンスではなくポインターを持つことであるこの投稿を見ました。
これらは私が持っている質問です:
- コンストラクターがないことについてコンパイラーが不平を言うのはなぜですか。クラスには明らかにコンストラクターがあります。
- これはどのように機能しますか?dervedClass のインスタンスを作成すると、その中に baseClass 部分があります。そして、この baseClass 部分には、派生クラスが含まれています。これは再帰的です。それが機能する場合、セグメンテーション違反などの結果になると思います。これが再帰的であると仮定するのは正しいですか(機能する場合)?
乾杯。
c++ - C++ でコマンドライン引数からメンバー変数を割り当てるにはどうすればよいですか?
そのクラスのすべてのオブジェクトがその値を持つように、コマンドライン引数からクラスメンバーを割り当てる方法はありますか (デフォルトで)? Var
メンバー関数は Foo クラスで新しいオブジェクトを作成し、関数パラメーターを作成したくないため、デフォルトでそれが必要です。できればグローバル変数は避けたい。グローバル変数を使用せずに、以下のコードと同じことを自分のコードで実行したいと考えています。
フー.h:
Foo.cpp:
main.cpp:
c++ - C++ のクラスのメンバー変数としてのオブジェクト
オブジェクト インスタンスを別のクラスのメンバー変数として処理するためのベスト プラクティスを知りたいです。さまざまな投稿を読んだ後、一般に、メンバー変数としてオブジェクトへの参照を持つことは避けるべきであるように思われますが、ポインターを使用することが良い解決策であるかどうかはわかりません. もう 1 つの可能性はconst
、クラス コンストラクターのパラメーターとして参照を持ち、コピー コンストラクターを使用してメンバー変数を初期化することです。
- この状況を処理するための経験則は何ですか?
share_ptr
メンバー変数として使用するのはどうですか?- メンバー変数が抽象クラスを参照している場合はどうなりますか? この場合、ポインターまたは参照に代わる他の方法はありますか?
編集:
質問に対する答えは文脈に大きく依存する可能性があるため、クラス メンバが抽象クラスを参照する場合に指定します。例として、戦略パターンを実装する次のコードを考えてみましょう。
には純粋仮想関数があるためAsbtractStrategy
、それを のメンバーとして持つ唯一の方法Client
は、ポインターまたは参照を使用することです。より良い解決策はありますか?
garbage-collection - javaのメンバー変数はGCルートですか?
gcルートとは何かについて多くの説明があります.ローカル変数とparamsがgcルートであることは知っています.しかし、メンバー変数はgcルートではありませんか? クラス本体にコードを入力すると
したがって、p はローカル var ではなくメンバー var です。p が GC ルートでない場合は、コレクションである可能性があります。また、sayHello メソッドで null ポイント例外が発生します。
c++ - c++で一部のメンバー変数の初期化をスキップすることの長所と短所は何ですか?
次の例を考えてみましょう。
Aclass.h
Aclass.cpp
y
では、コンストラクターで初期化をスキップした場合の違いは何ですか? 欠点は何ですか? また、コードの残りの部分にどのような影響がありますか? これは良いコーディング方法ですか?私が知っているのは、コンストラクターは、 と が初期化されているか、両方が初期化されていなくても (デフォルトのコンストラクター)、コンストラクターを使用して汎用オブジェクトを作成する場合でも、オブジェクトを作成するということx
ですy
。
c - 別の構造内の構造変数にアクセスする方法は?
typedef struct
ヘッダーファイルに2つあります。
へのアクセス方法がわかりませんPlayerFallStruct playerFall
。((PlayerFallStruct*) packetClient->playerFall)->fallLevel = 0; を使用すると、
コンパイラはエラーをスローします:
Client.c:46:4: エラー: ポインター型に変換できません ((PlayerFallStruct*) packetClient->playerFall)->fallLevel = 0;
なんで?どこに問題がありますか?にアクセスするにはどうすればよいstuct
ですか?