問題タブ [private-constructor]
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# - C#でプライベートコンストラクターを使用してオブジェクトをインスタンス化する方法は?
リフレクションか何かを使用してそうする例をどこかで見たのを確かに覚えています。それはSqlParameterCollection
、ユーザーが作成できないものと関係がありました (私が間違っていなければ)。残念ながら、もう見つけることができません。
誰でもここでこのトリックを共有できますか? それが開発における有効なアプローチだとは考えていませんが、これを行う可能性に非常に興味があります。
c++ - このオブジェクトから継承できませんか?
この質問をフォローアップすると、次のような「オプション 3」を使用するよう提案されました。
しかし、これには 2 つの大きな問題があります。
Body
(プライベートでWorld::CreateBody
あるため)であっても、構築することはできませんb2Body
- できたとしても、
b2Body
パーツは正しく初期化されません (呼び出すb2World::CreateBody
必要があります)。
b2Body
これは、 /から継承してb2World
、この同じ設計パターンに従うことはできないということですか? (b2* クラスは編集できないことに注意してください)
もしそうなら、代わりにb2World
andb2Body
をメンバー変数として保持することをお勧めしますか?
現在、次の2つのオプションに帰着すると思います。
c++ - c++:プライベートコンストラクターは、ヘッダー内にそのクラスオブジェクトが定義されていないことを意味しますか?
さらに別の質問、どうぞ!...とにかく、プライベートコンストラクターと静的関数を備えた2つのクラスがあり、そのクラスのインスタンスを返します。すべて問題ありませんでした。次のようにして、gameState オブジェクト ポインターを取得できた main.cpp ファイルがあります。
しかし今、私は問題を抱えているようです。便宜上、gameState インスタンスと actionHandler インスタンスの両方が相互へのポインターのコピーを保持するようにしました。だから私はお互いのヘッダーファイルに含めようとしました:
と
ただし、これは機能していないようです...「エラー C2143: 構文エラー: ';' がありません」が表示されます。これらの行の両方で「*」の前にエラーが発生します...そのクラスにプライベートコンストラクターがある場合、ヘッダーで特定のクラスの変数を定義できませんか? それとも別の問題ですか?または、インスタンスへのポインターが静的メンバーとして格納されているためでしょうか?
編集:みんなありがとう!ここ数日で得られる C++ の知識の量には驚くべきものがあります。
java - Java のクラス内からのプライベート コンストラクターの呼び出しを防止する
コンストラクターをプライベートにすることで、クラスのオブジェクトの作成を制限できます。ただし、このコンストラクターはクラス内から呼び出すことができます。Javaでこれを防ぐ方法はありますか?
ありがとう。
c++ - コピー コンストラクターとコピー代入がプライベートなオブジェクトの使用方法は?
TCPLを読んでいると、タイトルが示すように問題が発生し、「プライベート」クラスは次のようになります。
使用コードは次のとおりです。
そして、私はそのような操作を実行したい:
ただし、これらのコードはTCPLからのものですが、まだ解決策を得ることができません...誰か助けていただければ幸いです。
c++ - プライベート コピー コンストラクターと割り当てコンストラクターを取得したオブジェクトの使用方法は?
TCPLを読んでいると、タイトルが示すように問題が発生し、「プライベート」クラスは次のようになります。
使用コードは次のとおりです。
そして、私はそのような操作をしたいです
ただし、これらのコードはTCPLからのものですが、まだ解決策を得ることができません...誰か助けていただければ幸いです。
c++ - C ++では、クラス型を変数として表すことができますか?
実行時に決定するが、特定のクラスをサブクラス化することがわかっているクラスから静的メソッドを呼び出したいと思います。だから私はこれらのクラスを持っているとしましょう
そして、実行時に(ファイルの内容に基づいて)次にsubAとsubBのどちらをロードするかを決定したいとします。これを行う1つの方法は、空のオブジェクトを使用してメソッドを呼び出すことです。
しかし、subBの引数なしのコンストラクターをプライベートにしたので、ここではそれを行うことができません。しかし、実際にはスーパーオブジェクトは必要ありません。スーパーサブクラスのクラスタイプだけが必要です。それで、それを変数として表す方法はありますか?
編集:この場合、関数ポインターを返すことができることは承知していますが、複数の静的関数を呼び出す必要がある可能性がある、より複雑な例を検討しています。
c++ - c++ プライベート コンストラクター
静的関数以外のクラスのインスタンスを作成することを誰にも許可したくない場合 (これは singleton/factory と呼ばれると思いますか?)、デフォルトのコンストラクターをプライベートにするだけで十分ですか、それとも明示的にする必要がありますか?コピーコンストラクターと代入演算子を定義してプライベートにしますか?
c++ - プライベート コンストラクター
プライベートコンストラクターはどこに必要ですか? プライベートコンストラクターを持つクラスをインスタンス化するにはどうすればよいですか?
c++ - これはプライベートコンストラクターの適切な使用ですか?
毎日何か新しいことを学ぼうとしている私は、次のデザインが良いか悪いか興味があります。
A
それ自体のオブジェクトを static private member variable にキャッシュするクラスを実装していますstd::map<> cache
。のユーザーはA
、マップ内の要素へのポインターにのみアクセスできるようにするA
必要があります。新しいA
は、マップでまだ利用できない場合にのみ作成されますA
。わかりました、ここにいくつかのコードがあります:
上記のコードに何か問題がありますか? 落とし穴はありますか、メモリ管理の問題などを見逃すことはありませんか?
ご意見ありがとうございます!