阅读下列说明和 C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
【说明】
设计 RGB 方式表示颜色的调色板,进行绘图,其类图如图 5-1 所示。该程序的 C++代码附后。
【C++代码】
#include <iostream>
#include <stdlib.h>
#include <ctime>
using namespace std;
class MyColor{
private:
int red; int green; int blue;
public:
MyColor() {red = 0; green = 0; blue = 0; }
~MyColor() { }
MyColor(int red ,int green ,int blue) {
this->red = red; this->green = green; this->blue = blue;}
//其他方法略
void print() {
cout<<"Red: " << red << "\tGreen: " << green << "\tBlue " << blue
<< endl;
}
};
class Palette {
private:
int number; MyColor** palette;
public:
Palette() { number = 256; palette = (MyColor*)malloc
(sizeof(MyColor*) *number); }
~Palette () {
for (int i = 0; i < number; i++) { delete palette[i]; }
(1) ;
}
Palette(MyColor** pale ,int number) {
(2) = number;
palette = (MyColor**)malloc(sizeof(MyColor*)*number) ;
memcpy(palette ,pale ,sizeof(pale)*number);
}
//其他方法略
void print () {
for (int i = 0; i < number; i++) {
cout << i << " : " ;
palette[i]->print();
}
}
};
class Drawing{
public:
(3) int COLORNUMBER = 16;
public:
~Drawing () { }
void draw() (
Palette* palette;
int red ,green ,blue;
MyColor* color[COLORNUMBER];
srand((unsigned)time(O));
for (int i = 0; i < COLORNUMBER; i++) {
red=rand ()% 256; green = rand() % 256; blue = rand ()% 256;
color [i] = (4) (red ,green ,blue);
}
palette = new Palette(color ,COLORNUMBER);
palette->print();
for (int i = 0; i < COLORNUMBER; i++)
delete color[i];
}
};
int main () {
Drawing * d = (5) ;
d->draw();
delete d;
}