問題タブ [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.

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

c++ - プライベートC++ク​​ラスメンバー変数へのアクセスをだますことはできますか?

重複の可能性:
プライベートメンバー
へのアクセスクラスのプライベートメンバーにアクセスすることは可能ですか?

クラスのプライベートデータメンバーをハッキングするための良い(はい、これは醜いことを知っています)方法はありますか?

強引なアプローチの1つは、ヘッダーファイルをコピーし、私のコピーではプライベートからパブリックに変更することです。しかし、もっと良い方法があるでしょうか

または、他の何か?

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

c++ - C++ メンバー関数でのポインターの参照

メンバー変数ポインターを反復子として使用するメンバー関数を作成しています。ただし、読みやすさのために、関数内でポインターを参照したいと思います。そのようです:

これは基本的に私が目指しているもので、this->getNextIter は BTreeNode* です。ただし、次のエラーが表示されます。

この種の適切な構文は何ですか?

乾杯、

リス

0 投票する
7 に答える
1049 参照

c++ - メンバー変数ゲッターの参照を常に返すのは良い考えですか?

int、、floatおよびメンバー変数が多数あるクラスがある場合enum、それらをコピーではなく参照として返し、変更を加えてはならない場所で定数参照を返すことは効率的および/または良い習慣と見なされますか?それとも、コピーとして返却する必要がある理由はありますか?

0 投票する
3 に答える
67 参照

class-design - メンバーの特定の割合を基本クラスと派生クラスの間で共有する必要がありますか?

私は現在、コースワーク用に作成しているアプリケーションのクラスを設計しています。ベースから派生したクラスペアであるかのように聞こえ、実際に2つのメンバー変数を共有する、2つのクラスがあります。私の問題は、それぞれに7つのメンバー変数があり、操作はありません。

これらのクラスの構造の理由は、RSSリーダーを構築しており、これら2つのクラスにフィードのデータを保持させる予定であるためです。1つ目は、フィード自体のデータ(たとえば、ソースURL、ローカルストレージ上のrss.xmlファイルの場所、フィードが最後に更新された日時など)を保持します。2つ目は、フィード内に含まれる記事に関する情報を保持します。記事を時系列で並べ替えるために使用される、発行日時や発行日に基づく整数インデックスなどのフィード。

上記のコードは完全ではありません。現在、変数と関数のみを識別しています。プライベート/パブリックビットは、それらが完成すると表示されます。上記のコードからわかるように、共有されている2つの変数はタイトル説明だけです。

それらをエンティティベースのペアにして、5つの無関係な変数を非アクティブ化するだけの価値があるのか​​、完全に別個のクラスにする方が効率的であるのか、それとも完全に状況に応じた懸念であるのか、そして議論できるのかどうかはわかりません。どちらにしても。私の懸念は、コードの保守とスケーリングの両方が困難になる可能性があることですが、いずれかの方法に固有の実行オーバーヘッドが存在する可能性があることです。これについての考えやアドバイスをいただければ幸いです。

0 投票する
3 に答える
283 参照

python - Pythonでクラスを設計するときにメンバー変数を配置する推奨される方法はどこですか?

Pythonのクラスに慣れようとしています。C++ では、メンバー変数に関して、クラスの構造は単純に思えます。クラス スコープの最初または最後に (必要に応じて public または private として) それらを宣言し、必要に応じて操作します。

これはPythonでどのように処理されますか?

現在、私はクラスを作成し、必要に応じて変数を宣言する傾向があります。

クラスはメンバー変数なしでも定義でき、動的に追加できることを知っています。

これらすべてを一緒に投げると、コードが読みにくくなるため、混乱します。

だから私の質問は、python のメンバー変数に関して、クラスを設計するための推奨される方法は何ですか?


編集:

私が尋ねた方法は誤解を招くものでした。ごめんなさい!しかし、答えは他のことを理解するのに役立ちました。;-)

言い換えると、クラス内で定義された変数と、コーディング中に動的に追加された変数に関する混乱を解決する方法を求めているわけではありません。

私が解決したかったのは、メンバー変数に関する Python クラスの設計についての私の混乱でした。つまり、どこに配置するのが最適なのか、コードの潜在的な読者がそれらを検索せずにすべてを見ることができるようにする. そのため、C++ のクラスについて言及しました。すべてのメンバー変数に対して 1 つの場所があり、クラスに格納されているデータを知りたい場合は、クラスの最初または最後を見ると、必要なすべての情報が得られます。

上記の例では、is standardabove __init__(self, ...)、are inside of 、is insideであり、クラスが大きい場合、他のすべてのメソッドの下にある可能性があります。そのため、行ごとに検索する必要があります。そうしないと、その存在に気付かないでしょう。firstsecond__init(self,...)thirddo_something()

私の質問がより適切に提案されることを願っています。:-)

0 投票する
3 に答える
6222 参照

c++ - クラスデータメンバーの場合、メンバー関数へのポインタを呼び出す方法は?

上記のテストコードでpfは、はのデータメンバーですB。それを呼び出すための文法規則は何ですか?簡単なはずですが、適切に一致していません。たとえば、試してみるとobj.*pf(0,0);、次のようになります。

0 投票する
3 に答える
203 参照

c++ - クラスのユーザーが知る必要なく、テンプレート化されたクラスに静的メンバー変数を持つことは可能ですか?

このおもちゃのコードのような、テンプレート化されたコンテナー クラスがあります。

このクラスは非常に便利に使用できます。どのコードでも "MyVector.h" を #include するだけで、MyVector や MyVector などのオブジェクトの宣言を開始できます。

ただし、気になる点の 1 つは、_defaultItem メンバー変数の存在です。これは、コンテナーが空のときに GetFirstItemWithDefault() に有効な参照を返す機能を与えるためだけに存在します。反対意見は、N 個の MyVector オブジェクトを宣言すると、RAM にも _defaultItem の N 個のコピーが存在することを意味するということです。ただし、それらはすべて同一で読み取り専用であるため、実際には 1 つにつき 1 つだけ存在する必要があります。 MyVector ごとに 1 つではありません。

したがって、明らかな解決策は _defaultItem を static にすることです....しかし、AFAICT にはコストが伴います。これを行うと、古いコードを単純に #include "MyVector.h" して実行することはできなくなります。 .. ユーザーは、自分の .cpp ファイルの 1 つで、その静的変数のストレージを確実に宣言する必要があります。これは、(a) お尻の痛みであり、(b) コードのユーザーが認識しなければならないことを意味します。クラスの内部実装の詳細。_defaultItem はプライベート メンバー変数であるため、クラスのユーザーはそれについて考える必要はなく、その存在に気付く必要さえありません。ましてや、そのためのストレージを宣言する必要があることを知る必要はありません。(そして、2 つの別々のコードが両方ともそのストレージを宣言し、お互いが同じことをしたことを認識していない場合はどうなるでしょうか? 重複シンボル リンカー エラーが発生するのではないでしょうか?)

したがって、私の質問は次のとおりです。MyVector のユーザーがそれについて知る必要がないように、この静的メンバー変数に (インスタンス化された MyVector の型ごとに) 1 つの一意のストレージを自動的に提供するように C++ に指示する方法はありますか? (いくつかの一般的なケースだけでなく、 MyVector<...> のすべての可能なインスタンス化に対して自動である必要があることに注意してください)

0 投票する
6 に答える
1674 参照

c++ - 単純なクラスのゲッターとセッターを忘れても大丈夫ですか?

3D 空間での位置を表す非常に単純なクラスを作成しています。

現在、ユーザーが個々のXYおよびZ値に直接アクセスして変更できるようにしています。つまり、パブリック メンバー変数です。

これの背後にある理由NumericTypeは、 はテンプレート パラメーターであるため、値の健全性をチェックするための適切な方法があるとは言えません。(ユーザーが位置を負の値で表現することを望まないことをどのように知ることができますか?) したがって、ゲッターやセッターを追加してインターフェイスを複雑にする意味はなく、簡潔さのために直接アクセスを優先する必要があります。

これは良い慣行の例外ですか?私のコードの(仮想の)将来のメンテナーは私を追い詰めて顔を殴りますか?

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

c - 構造体の構造体配列のメンバー変数にアクセスできません

構造体の構造体配列にアクセスする必要がある C プログラムを作成しています。

定義は以下のようになります

tile[3][3]main 関数で、worldの obj の faceにアクセスしたい。

私は世界を次のように初期化します

しかし、次の行はエラーになります

obj の顔にアクセスする方法はありますか?

0 投票する
4 に答える
4196 参照

c++ - コンストラクター パラメーターを受け取るメンバー変数の宣言

'memberA' への宣言により、g++ コンパイラを使用してコンパイル エラーが発生します: エラー: 'A::eOne' は型ではありません

どうすればこれを克服できますか?パラメーターを取らないデフォルトのコンストラクターを作成する必要があるだけですか?