[問題] 請問template overriding和初始值設定問題
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: (題意請描述清楚)
1.寫陣列的overridding時
如果是float型態就動態配置5個存取float記憶體
其他型態則為10個
template<> class Array<float>的overridding
2.template class動態配置array記憶體,
string的初值自動default為空字串,
其他型態的則是已經存於記憶體中的渣渣
希望得到的正確結果:
1.產生一個大小為5的float陣列可供輸入
2.希望動態配置型態不確定的陣列初始值可以設為0或空
程式跑出來的錯誤結果:
1.測試過有成功配置記憶體,大小也是5,
但是如果第3數輸入float就會產生錯誤直接結束程式
2.ambiguous overload for 'operator=' in '*(((Array<std::string>*)this)->
Array<std::string>::content + (+(((unsigned int)i) * 4u))) = 0'
不能將沒用到的空間設定初值為0或空
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
dev-C++
有問題的code: (請善用置底文標色功能)
if(count>=size)
{
int temp=size;
T *temparray;
temparray = new T[temp];
for(int i=0;i<size;i++)
temparray[i]=content[i];
size=size*2;
content=new T[size];
for(int i=0;i<temp;i++)
content[i]=temparray[i];
// for(int i=temp;i<size;i++)
// content[i]=0;
}
補充說明:
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.253.235
推
06/04 01:50, , 1F
06/04 01:50, 1F
→
06/04 03:38, , 2F
06/04 03:38, 2F
推
06/04 04:41, , 3F
06/04 04:41, 3F
→
06/04 10:46, , 4F
06/04 10:46, 4F
推
06/04 15:46, , 5F
06/04 15:46, 5F
→
06/05 18:28, , 6F
06/05 18:28, 6F
推
06/06 06:23, , 7F
06/06 06:23, 7F
→
06/06 06:26, , 8F
06/06 06:26, 8F
→
06/06 06:26, , 9F
06/06 06:26, 9F
→
06/10 13:51, , 10F
06/10 13:51, 10F
→
06/10 13:52, , 11F
06/10 13:52, 11F