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

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

c# - C#でプライベートコンストラクターを使用してオブジェクトをインスタンス化する方法は?

リフレクションか何かを使用してそうする例をどこかで見たのを確かに覚えています。それはSqlParameterCollection、ユーザーが作成できないものと関係がありました (私が間違っていなければ)。残念ながら、もう見つけることができません。

誰でもここでこのトリックを共有できますか? それが開発における有効なアプローチだとは考えていませんが、これを行う可能性に非常に興味があります。

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

c++ - このオブジェクトから継承できませんか?

この質問をフォローアップすると、次のような「オプション 3」を使用するよう提案されました。

オンラインで試す

しかし、これには 2 つの大きな問題があります。

  1. Body(プライベートでWorld::CreateBodyあるため)であっても、構築することはできませんb2Body
  2. できたとしても、b2Bodyパーツは正しく初期化されません (呼び出すb2World::CreateBody 必要があります)。

b2Bodyこれは、 /から継承してb2World、この同じ設計パターンに従うことはできないということですか? (b2* クラスは編集できないことに注意してください)

もしそうなら、代わりにb2Worldandb2Bodyをメンバー変数として保持することをお勧めしますか?


現在、次の2つのオプションに帰着すると思います。

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

c++ - c++:プライベートコンストラクターは、ヘッダー内にそのクラスオブジェクトが定義されていないことを意味しますか?

さらに別の質問、どうぞ!...とにかく、プライベートコンストラクターと静的関数を備えた2つのクラスがあり、そのクラスのインスタンスを返します。すべて問題ありませんでした。次のようにして、gameState オブジェクト ポインターを取得できた main.cpp ファイルがあります。

しかし今、私は問題を抱えているようです。便宜上、gameState インスタンスと actionHandler インスタンスの両方が相互へのポインターのコピーを保持するようにしました。だから私はお互いのヘッダーファイルに含めようとしました:

ただし、これは機能していないようです...「エラー C2143: 構文エラー: ';' がありません」が表示されます。これらの行の両方で「*」の前にエラーが発生します...そのクラスにプライベートコンストラクターがある場合、ヘッダーで特定のクラスの変数を定義できませんか? それとも別の問題ですか?または、インスタンスへのポインターが静的メンバーとして格納されているためでしょうか?

編集:みんなありがとう!ここ数日で得られる C++ の知識の量には驚くべきものがあります。

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

java - Java のクラス内からのプライベート コンストラクターの呼び出しを防止する

コンストラクターをプライベートにすることで、クラスのオブジェクトの作成を制限できます。ただし、このコンストラクターはクラス内から呼び出すことができます。Javaでこれを防ぐ方法はありますか?

ありがとう。

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

c++ - コピー コンストラクターとコピー代入がプライベートなオブジェクトの使用方法は?

TCPLを読んでいると、タイトルが示すように問題が発生し、「プライベート」クラスは次のようになります。

使用コードは次のとおりです。

そして、私はそのような操作を実行したい:

ただし、これらのコードはTCPLからのものですが、まだ解決策を得ることができません...誰か助けていただければ幸いです。

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

c++ - プライベート コピー コンストラクターと割り当てコンストラクターを取得したオブジェクトの使用方法は?

重複の可能性:
コピー コンストラクターとコピー割り当てがプライベートなオブジェクトを使用する方法は?

TCPLを読んでいると、タイトルが示すように問題が発生し、「プライベート」クラスは次のようになります。

使用コードは次のとおりです。

そして、私はそのような操作をしたいです

ただし、これらのコードはTCPLからのものですが、まだ解決策を得ることができません...誰か助けていただければ幸いです。

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

c++ - C ++では、クラス型を変数として表すことができますか?

実行時に決定するが、特定のクラスをサブクラス化することがわかっているクラスから静的メソッドを呼び出したいと思います。だから私はこれらのクラスを持っているとしましょう

そして、実行時に(ファイルの内容に基づいて)次にsubAとsubBのどちらをロードするかを決定したいとします。これを行う1つの方法は、空のオブジェクトを使用してメソッドを呼び出すことです。

しかし、subBの引数なしのコンストラクターをプライベートにしたので、ここではそれを行うことができません。しかし、実際にはスーパーオブジェクトは必要ありません。スーパーサブクラスのクラスタイプだけが必要です。それで、それを変数として表す方法はありますか?

編集:この場合、関数ポインターを返すことができることは承知していますが、複数の静的関数を呼び出す必要がある可能性がある、より複雑な例を検討しています。

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

c++ - c++ プライベート コンストラクター

静的関数以外のクラスのインスタンスを作成することを誰にも許可したくない場合 (これは singleton/factory と呼ばれると思いますか?)、デフォルトのコンストラクターをプライベートにするだけで十分ですか、それとも明示的にする必要がありますか?コピーコンストラクターと代入演算子を定義してプライベートにしますか?

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

c++ - プライベート コンストラクター

重複の可能性:
クラスでコンストラクターをプライベートにすることの用途は何ですか?

プライベートコンストラクターはどこに必要ですか? プライベートコンストラクターを持つクラスをインスタンス化するにはどうすればよいですか?

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

c++ - これはプライベートコンストラクターの適切な使用ですか?

毎日何か新しいことを学ぼうとしている私は、次のデザインが良いか悪いか興味があります。

Aそれ自体のオブジェクトを static private member variable にキャッシュするクラスを実装していますstd::map<> cache。のユーザーはA、マップ内の要素へのポインターにのみアクセスできるようにするA必要があります。新しいAは、マップでまだ利用できない場合にのみ作成されますA。わかりました、ここにいくつかのコードがあります:

上記のコードに何か問題がありますか? 落とし穴はありますか、メモリ管理の問題などを見逃すことはありませんか?

ご意見ありがとうございます!