C++の別のクラスのコンストラクタであるクラスのオブジェクトを初期化することはできますか?私は通常、メイン()内のオブジェクトのみを宣言しますが、これが可能かどうか、そして良い方法があるのかどうか不思議です。 「新規」の意味とは何か、「新しい」演算子がない場合です。それはどこで破壊されますか?C++の別のクラスのコンストラクタにあるクラスのオブジェクトを宣言することはできますか?
1つの名前空間と「新しい」演算子を使用する例を仮定すると、
class A{
private:
protected:
int *w, int *h;
public:
A(){
w = new int;
h = new int;
};
virtual int area (return ((*w)*(*h)) ;)
virtual ~A()
{
delete w;
delete h;
}
}
class B{
public:
B()
{
A a1; // This is usually in the main();
// Is this good practice
//Where will the object be destroyed
}
virtual ~B();
}
C++については、1つまたは2つの書籍を読むことをお勧めします。単純な整数を 'new'で割り当てることは価値がありません。 –
復旧中のJavaプログラマですか? –
いいえ、1人のJavaプログラマが私にこの質問をしました。このタイプのデザインを使用していないので、私は自分自身がわからないので、スタックオーバーフローでこれを尋ねるかもしれないと思っていました。私はCとC++のプログラマーです。 – enthusiasticgeek