私は C++ ドキュメンテーション チュートリアルに取り組んでいますが、コンストラクターでポインターを使用するこの例を理解するのに苦労しています。
// example on constructors and destructors
#include <iostream>
using namespace std;
class CRectangle {
int *width, *height;
public:
CRectangle (int,int);
~CRectangle ();
int area () {return (*width * *height);}
};
CRectangle::CRectangle (int a, int b) {
width = new int;
height = new int;
*width = a;
*height = b;
}
CRectangle::~CRectangle () {
delete width;
delete height;
}
int main () {
CRectangle rect (3,4), rectb (5,6);
cout << "rect area: " << rect.area() << endl;
cout << "rectb area: " << rectb.area() << endl;
return 0;
}
ポインタ*width
が2回宣言されているようです。クラスの最初で宣言されint *width, *height;
、コンストラクターが初期化されるときにも宣言されますwidth = new int;
。
ポインターを 2 回宣言する必要があるのはなぜですか?