阅读下列说明和C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
[说明]
设计RGB方式表示颜色的调色板,进行绘图,其类图如下图所示。该程序的C++代码附后。
类图
[C++代码]
#include<iostream>
#include <stdlib. h>
#include <crime>
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]; }
______;
}
Palette(MyColor**
pale, int number) {
______ = 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:
______ int
COLORNUMBER = 16;
public:
~Drawing() { }
void draw()
{
Palette* palette;
int red,
green, blue;
MyColor*
color[COLORNUMBER];
srand ((unsigned)
time (0));
for (int i=0; i<COLORNUMBER; i++) {
red=rand() %
256; green = rand() % 256; blue = rand() % 256;
color[i] = ______
(red, green, blue);
}
palette = new
Palette (color, COLORNUMBER);
palette->print ();
for (int
i=0; i <
COLORNUMBER; i++)
delete color[i];
}
};
int main ()
{
Drawing * d =
______;
d->draw ();
delete d;
}


