我正在使用带有g ++ 的-c选项来创建一堆目标文件,并且它只允许我为每个目标文件指定一个源文件.我想让其中一些文件进入其中.有没有办法做到这一点?
在C++中,您可以将指针声明为一种类型,然后将其指向另一种继承类型.有什么方法可以告诉你当前指的是哪个?
#include <typeinfo>
using namespace std;
class Foo
{
};
class Bar : public Foo
{
};
int main()
{
Bar bar;
Foo* foo = &bar;
bool I_WANT_THIS_TO_BE_TRUE = (typeid(*foo) == typeid(Bar));
return 0;
}
Run Code Online (Sandbox Code Playgroud) 在这段代码中,为什么typename T(在Test(...)函数中)评估为键入Foo而不是类型Bar?我怎样才能改变它以使它成为Bar型?
#include <typeinfo>
using namespace std;
struct Foo
{
virtual ~Foo() { }
};
struct Bar : public Foo
{
};
template<typename T>
bool Test(T foo)
{
return (typeid(foo) == typeid(Bar));
}
int main()
{
Bar bar;
Foo *foo = &bar;
bool THIS_IS_TRUE = (typeid(*foo) == typeid(Bar));
bool WHY_ISNT_THIS = Test(*foo);
return 0;
}
Run Code Online (Sandbox Code Playgroud)