我有一个名为table 3
Row volume part 1 part 2 part 3
2 1020 3 6 7
1 520 2 5 3
4 200 9 2 1
3 100 1 9 2
的课程。
我想编写一个函数,它从db中获取表User的所有条目,如下所示:
User
并将其称为getObectList(type aType)
{
...
select * from aType.name
...
}
在c ++中是否可以这样?
答案 0 :(得分:0)
您应该查看<typeinfo>
标题,其中有一些方法可以帮助您。
示例:
#include <typeinfo>
class Foo { };
int main() {
Foo foo;
string s = typeid(foo).name();
}
请记住,当您使用其他编译器等时,输出可能会有所不同,因为它的实现详细信息如何实现类型的命名。
为避免这种情况,您可以在初始化时对已使用的类型进行一些测试并存储使用类型的name()
或hash_code()
方法的结果,然后在运行时进行检查。这样您就可以获得独立于编译器的解决方案。
答案 1 :(得分:-1)
typeof(expression)是gcc和Clang提供的扩展。它与使用类型本身完全相同,所以如果你写
int x;
typeof (x) y;
第二个声明与写入y完全相同。 typeof在运行时永远不会有任何影响;它返回的类型总是在编译时确定。
您无法将类型传递给函数。无论是直接键入还是使用typeof()都没有区别。