1
我需要比較兩個類,更確切地說是它們的類型。 我寫了下面的代碼:比較C++中的類類型
class Base {};
class Derived : public Base {};
class Engine
{
public:
template <class T>
T addComponent();
};
template <class T>
T Engine::addComponent()
{
Base* isRight = dynamic_cast<Base*>(T);
if (!isRight)
throw("Error!");
return T();
}
然後,我把它叫做
int main()
{
Engine engine = Engine();
Derived derived = engine.addComponent<Derived>();
}
嗯,我知道,只有在類的實例dynamic_cast
作品。我希望你知道一個解決方案。
目前還不清楚你想要做什麼,但你可能想看看['std :: is_same'](http://en.cppreference.com/w/cpp/types/is_same)。 – juanchopanza 2015-02-09 21:05:08
另外,拋出一個字符串文字是一個_terrible_想法。 – 2015-02-09 21:06:13