开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
Delphi XE3 C++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
vcl
问题(Question):
如果想要在runtime时决定资料型态时,除了if/else的写法外
有没有其他类型的写法
喂入的资料(Input):
目前有一组raw的图形资料,储存方式有16bits和8bits两种
如果以case by case的方式处理怕以后不好maintain
目前的想法是用
class ImageData{
public:
ImageData(int);
char* Data; //原始图资
void setDataType(int); //设定资料储存bits数
int getData(int); //读取第n笔资料
private:
int bits;
}
ImageData::ImageData(int size){
Data = new char[size];
}
void ImageData::setDataType(int inputBits){
bits = inputBits;
}
int getData(int pos){
if (bits == 8) return (int) *(Data + pos);
else if (bits == 16) return (int) *((short*)Data + pos);
}
的方式实做,这样会不会也不好maintain或是有其他较佳的方式
预期的正确结果(Expected Output):
错误结果(Wrong Output):
程式码(Code):
补充说明(Supplement):无