我有一个带有void *的函数作为其参数之一(void用作通用对象)。但是为了能够调用该泛型对象中的函数,我需要先抛出它,为此我需要知道该类的类型。我想知道,是否可以传递一个类或一些允许我将对象转换为函数参数的信息?
答案 0 :(得分:9)
你有没有机会调查Templates?
一个例子是
class SomeClass
{
public:
template<typename CastClass>
void DoSomething(void* someArg)
{
(CastClass)someArg;
}
};
用法:
class A{ }; // Some random test class
SomeClass test;
A a;
test.DoSomething<int>(&a); // The template parameter can be anything.
// I just have int to make it a smaller example.