在C++中,二維陣列可以使用指針的指針來動態分配記憶體。以下是Image類別的建構子實作,它會根據提供的寬度w和高度h動態分配一個二維陣列pixel。
cpp
Copy code
class Image {
private:
int width; // 寬
int height; // 高
unsigned char **pixel; // 像素
public:
// 建構子
Image(int w, int h) : width(w), height(h) {
// 為每一行分配記憶體
pixel = new unsigned char*[height];
// 為每一列分配記憶體
for (int i = 0; i < height; ++i) {
pixel[i] = new unsigned char[width];
}
}
// 其他成員函式的宣告...
};
在這個建構子中,首先初始化width和height成員變量。然後,我們為pixel變量分配了一個指針陣列,每個指針代表圖像中的一行。接下來,對於每行,我們再分配一個指針陣列,每個指針代表該行中的一個像素。
注意:在這個類別中,你可能還會需要一個解構子來釋放分配的記憶體,以防止記憶體洩漏。这里没有包括解构函数和其他成员函数的实现,因为题目没有要求。