問題タブ [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.
java - プライベートコンストラクターを持つジェネリックオブジェクト
これが私の問題です。とまったく同じように、複数の静的メソッドで作成できるプライベートコンストラクターを持つクラスが必要ですBox.createHorizontalBox()
。複雑になるのは、このクラスがジェネリックを使用する場合です。
これを正しく行う方法を教えてください:
これは機能していません:Eclipseはint
fromcreateHorizontalWorkFlow<T>(int _arrowSize)
に下線を引き、エラーを表示しますSyntax error on token(s), misplaced construct(s)
c++ - このコードは、プライベート コンストラクターのみを持つクラスのインスタンスをどのように作成しますか?
私はサウンド ライブラリ (OpenAL を使用) に取り組んでおり、FMOD によって提供されるインターフェイスからインスピレーションを得て、このリンクでインターフェイスを確認できます。
FMOD インターフェイスからわかるように、Sound、Channel、ChannelGroup などのいくつかの概念を提供しました。これらのクラスにはすべてプライベート コンストラクターがあり、たとえば、Sound を作成する場合は、提供されている関数createSound()を使用する必要があります。 System クラスによって (Channel または ChannelGroup を作成する場合と同じ)。
同様のメカニズムを提供したいのですが、背後でどのように機能するのかわかりません。たとえば、関数createSound()はどのようにしてサウンドの新しいインスタンスを作成できますか? コンストラクターはプライベートであり、Sound インターフェースからは、静的メソッドやフレンドシップはありません。いくつかのパターンが使用されていますか?
編集:OPの質問を明確にするために、プライベートコンストラクターを使用してクラスのインスタンスを作成する方法を尋ねていません。質問は投稿されたリンクにあります。プライベートコンストラクターを持ち、静的メソッドまたはフレンドを持たないクラスのインスタンスはどのように作成されますか?機能。
ありがとう。
c++ - コピー不可のメンバー参照を含むクラスのコピー コンストラクターに関するアドバイス
クラス B のオブジェクトをメンバーとして参照するクラス A があります。クラス B のコピー コンストラクター (および代入演算子) はプライベートです。A にデフォルトのコピー コンストラクターを使用することは有効で良い考えだと思いますか (実際には、代入機能と割り当て機能の両方を必要とするある種の STL コンテナーに、型 A の多くのオブジェクトを格納できる機能が必要です)。コピー可能。)
これまでのところ、私の知る限り、上記の方法に対する異議は次のとおりですが、私の設計はそれに直面していません。上記の例について他に問題/問題/懸念があるかどうかを知りたいです...
- 参照のみがコピーされるため、タイプ B の元のオブジェクト b が破棄されると問題が発生します。( b はスコープ全体で使用できるため、適用されません。)
- b_ は A のすべてのインスタンスで一意ですか? (いいえ、B は実際にはスコープ内で 1 回だけインスタンス化されるため、シングルトン クラスの効果があります。)
他に懸念事項がある場合は、ここに記載してください。私は明示的に定義されたコピーコンストラクターには熱心ではありませんが、それに対して心を開いています。
c++ - 基本クラス ctor がプライベートである派生クラス オブジェクトをインスタンス化する
基本クラスctorがプライベートである派生クラスオブジェクトをインスタンス化する方法は?
派生クラス ctor は基本クラス ctor (プライベート) を暗黙的に呼び出すため、コンパイラはエラーを返します。
以下のコード例を検討してください。
このコードでは、コンパイル エラーが発生します。
access_private_ctor_in_base_class.cpp: コンストラクター
derived::derived()': accessing_private_ctor_in_base_class.cpp:9: error:
では base::base()' はプライベートです access_private_ctor_in_base_class.cpp:18: エラー: このコンテキスト内
コードを変更してコンパイル エラーを取り除くにはどうすればよいですか?
c++ - C++ のプライベート コンストラクターを使用したサブクラス
簡単な質問があります。サブクラスは、C++ でプライベート コンストラクター (つまり、シングルトン実装用) を持つことができますか?
この例は正しいですか?
c++ - 特定のクラスからのオブジェクトの作成を制限する方法
「銀行」クラスと「支店」クラスがあります。「支店」は「銀行」から継承されます。「銀行」オブジェクトのみが新しい「支店」オブジェクトを作成できるようにしたいと考えています。(例えば、シティ銀行の新しい支店を開設できるのはシティグループだけです)。
これを達成するための最良の設計パターンは何ですか?
現在、プライベートコンストラクターでフレンドクラスを使用しています。しかし、それが正しい方法であるかどうかはわかりません。
c++ - Bjarne Stroustrup の本で、コンストラクター Zlib_init がクラス Zlib_init でプライベートに保持されるのはなぜですか
Bjarne Stroustrup 著 The C++ Programming Language の中で、著者は次のように述べています。
ライブラリを設計するとき、初期化とクリーンアップのみを目的として、コンストラクタとデストラクタを使用して型を作成することが必要な場合や、単純に便利な場合があります。このような型は、コンストラクタとデストラクタが呼び出されるように静的オブジェクトを割り当てるために、一度だけ使用されます。例えば:
残念ながら、そのようなオブジェクトが最初に使用される前に初期化され、個別にコンパイルされたユニットからなるプログラムで最後に使用された後に破棄されることは保証されていません。
なぜ作成者はコンストラクタとデストラクタをプライベート メンバーとして保持するのですか? また、個別にコンパイルされたユニットで構成されるプログラムでこの方法を使用すると、なぜこの方法が機能しないのでしょうか? コンストラクタとデストラクタx
を呼び出すためのメンバーの定義が必要ではないでしょうか? では、この方法の用途は何ですか?本のセクション 10.4.9 にあります。Zlib_init()
~Zlib_init()
c# - .Net のプライベート コンストラクターと静的コンストラクター
私はこれをたくさん検索しましたが、明確な答えはありません (少なくとも私にとっては!)。今、私はこの質問をSOに入れています。他の場所ではより明確な答えを得ることができないと信じているからです。
クラスでプライベート/静的コンストラクターを使用する必要があるのはいつですか?
私は通常の答えにうんざりしているので、これらのコンストラクターを使用するリアルタイムの例と利点/欠点を教えてください。
c++ - フレンドクラスはC++でプライベートコンストラクターを呼び出すことができますか?(およびシングルトンとは)
クラスAとBについて考えてみます。クラスAはクラスBと友好的です。クラスBにはプライベートコンストラクターがあります。クラスAはクラスBインスタンスを作成できますか、それともプライベートコンストラクターは、フレンドクラスであっても、クラスをインスタンス化できないことをコンパイラーに示しますか?
サンプルコードは次のとおりです。
また、C++03を使用していることに注意してください。C ++ 03で無効な場合、C ++ 11で許可されますか?
副次的な質問として、シングルトンメソッドはどのように関連していますか?オブジェクトの唯一のインスタンスをインスタンス化することを具体的に扱っていますか、それとも他の何かですか?
c++ - 静的オブジェクトとメソッドを使用するにはどうすればよいですか!?C++の欲求不満
ですから、私は数時間、迅速で簡単なプロジェクトになると思っていたものに取り組んできましたが、それを機能させることができません!それは私をイライラさせています笑私は近くにいなければなりませんが、多分私はそうではありません。
コードに、何をすべきかを説明するコメントを含めます。基本的に、プライベートコンストラクタとデストラクタを使用します。メンバー整数と、クラス内のオブジェクトへの参照を返すパブリック静的関数、およびメンバー整数を表示してインクリメントするパブリック関数。スコープと初期化エラーが発生し続けます。
ここにエラーがあります:
どんな助けや提案も大歓迎です!
ここに私のコード(Singleton.h、Singleton.cpp、main.cpp)があります:
Singleton.h:
Singleton.cpp:
main.cpp:
考え/提案/質問/懸念?これが私を引き起こしている欲求不満を和らげるのに役立つものは何でもあります笑。私にそのような問題を引き起こすのは単純すぎるようです。ありがとう!