[問題] RTTI
我自行寫了一個如下的範例
紅色註明的地方,是我一加上去之後
compile就會告知我Construct的部份出了問題,我不懂原因是什麼,如下:
#include <iostream>
#include <typeinfo>
using namespace std;
template <class AnyType = int>
class Base
{
private :
AnyType codX;
AnyType codY;
public :
Base();
Base(AnyType, AnyType);
Base(const Base<AnyType> &);
void showXY() { cout <<"(" <<codX <<", " <<codY <<")" <<endl; };
};
template <class AnyType>
Base<AnyType>::Base()
{
if (typeid(AnyType) == typeid(float)) { codX = 0; codY = 0; }
else if (typeid(AnyType) == typeid(double)) { codX = 0.3; codY = 0.5; }
else if (typeid(AnyType) == typeid(char)) { codX = 'A'; codY = 'B'; }
else if (typeid(AnyType) == typeid(string)) { codX = "S"; codY = "H"; }
else { codX = 0; codY = 0; }
}
int main()
{
Base<double> Ob; //Error !?
system("pause");
return 0;
}
我不懂為什麼這樣寫不會過
他的Error如下:
cannot convert `const char[2]' to `double' in assignment
我在Construct中條列式分開,判斷的部份不會判斷到string的部份才對
更何況我放入的型態是double
所以我看不出來compile不會過得原因是什麼?
還請各位指點一下,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.118.54.246
※ 編輯: godman362 來自: 122.118.54.246 (03/15 17:25)
推
03/15 17:29, , 1F
03/15 17:29, 1F
→
03/15 17:49, , 2F
03/15 17:49, 2F
推
03/15 17:50, , 3F
03/15 17:50, 3F
→
03/15 17:50, , 4F
03/15 17:50, 4F
→
03/15 18:47, , 5F
03/15 18:47, 5F
→
03/15 18:48, , 6F
03/15 18:48, 6F
→
03/15 18:48, , 7F
03/15 18:48, 7F
推
03/15 19:02, , 8F
03/15 19:02, 8F
→
03/15 19:02, , 9F
03/15 19:02, 9F
→
03/15 19:03, , 10F
03/15 19:03, 10F
推
03/15 19:08, , 11F
03/15 19:08, 11F
→
03/15 19:08, , 12F
03/15 19:08, 12F
→
03/15 19:17, , 13F
03/15 19:17, 13F
→
03/15 19:18, , 14F
03/15 19:18, 14F
→
03/15 19:19, , 15F
03/15 19:19, 15F
推
03/15 19:19, , 16F
03/15 19:19, 16F
→
03/15 19:21, , 17F
03/15 19:21, 17F
→
03/15 19:24, , 18F
03/15 19:24, 18F
→
03/15 19:26, , 19F
03/15 19:26, 19F
推
03/16 17:37, , 20F
03/16 17:37, 20F
→
03/16 17:38, , 21F
03/16 17:38, 21F
→
03/16 17:38, , 22F
03/16 17:38, 22F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章