[問題] 在Runtime時決定資料型態
開發平台(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):無
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.165.161.221
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1432018465.A.B99.html
→
05/19 16:07, , 1F
05/19 16:07, 1F
推
05/19 16:13, , 2F
05/19 16:13, 2F
→
05/19 16:15, , 3F
05/19 16:15, 3F
→
05/19 16:16, , 4F
05/19 16:16, 4F
→
05/19 16:17, , 5F
05/19 16:17, 5F
→
05/19 16:19, , 6F
05/19 16:19, 6F
→
05/19 16:21, , 7F
05/19 16:21, 7F
※ 編輯: mjchicken (1.165.161.221), 05/19/2015 16:28:37
→
05/19 16:33, , 8F
05/19 16:33, 8F
→
05/19 16:35, , 9F
05/19 16:35, 9F
→
05/19 16:36, , 10F
05/19 16:36, 10F
→
05/19 16:37, , 11F
05/19 16:37, 11F
推
05/19 17:12, , 12F
05/19 17:12, 12F
→
05/19 17:13, , 13F
05/19 17:13, 13F
→
05/19 17:13, , 14F
05/19 17:13, 14F
→
05/19 17:14, , 15F
05/19 17:14, 15F
推
05/19 18:00, , 16F
05/19 18:00, 16F
推
05/19 19:31, , 17F
05/19 19:31, 17F
推
05/19 20:55, , 18F
05/19 20:55, 18F
→
05/19 20:58, , 19F
05/19 20:58, 19F
→
05/19 20:58, , 20F
05/19 20:58, 20F
→
05/21 10:46, , 21F
05/21 10:46, 21F
→
05/21 10:56, , 22F
05/21 10:56, 22F
→
05/21 10:57, , 23F
05/21 10:57, 23F