開發平台(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):無