C++では、クラスのデフォルト値を変更して、そのクラスで作成されたすべてのオブジェクトに値が指定されるようにすることは可能ですか?C++クラスのデフォルト値を実行時に変更できますか?
実行時に同じ親クラスの他の子とほぼ同じになるはずのユーザー定義のクラスを作成しようとしていますが、同じフォーマットのコンストラクターを両方に持つ方法には苦労しています。正しい情報をすべての新しいオブジェクトに適切に振り向けるために考えることができる唯一の方法は、作成時に常にクラスの型を別々に扱うか(常にユーザー入力をコンストラクタに入れます)、作成時のクラスのオブジェクト動作を定義された入力にデフォルト設定されます。
編集:より良い問題を説明し、ここでXYの問題の可能性に対処するためにはシナリオです:
一般的なプログラム: 私は、ユーザーが最初に名前と番号を提供することにより、カスタムシェイプを定義したいですそれを定義する行のユーザーは、三角形、四角形、カスタムシェイプを「カート」に追加できます。各カスタムシェイプは、最初に指定したシェイプと同じ形状ですが、ユーザーはプログラム中に変更しません。プログラムは、存在する特定のタイプのメンバ数やカート内の総ライン数などの一般的な情報を返すことができます。
親クラスがあります:
クラスshape
メンバーNUMLINES、名;
そして、3つのクラスがShapeの子である:
クラストライアングル
上書きNUMLINES = 3、名前= "トライアングル"。
...
クラスuserShape
上書きnumline = ????、名前= ????。
"シェイプ"オブジェクトとやりとりするカート用のメソッドを作成するときに、userShapeのコンストラクターを別の方法で扱う必要がなく、追加のオブジェクトを作成するためにボード全体で同じコードを使用できます。
私が受け取った答えから、静的型はデフォルト値のユーザー設定に最も適しているようですが、このようなものを実装するためのより良い方法があります。
「実行時にユーザー定義のクラスを作成しようとしています」というのは、C++でですか?どうやって? – AndyG
デフォルトを変更することはできませんが、あなたが言っていることは違っています...どのように使用するかのコード例を挙げることはできますか? – lorro
静的メンバーを利用したいと思うようなサウンドです。 – Ron