是否可以将类作为参数传递给c ++中的函数?

时间:2012-04-03 15:51:07

标签: c++

我有一个带有void *的函数作为其参数之一(void用作通用对象)。但是为了能够调用该泛型对象中的函数,我需要先抛出它,为此我需要知道该类的类型。我想知道,是否可以传递一个类或一些允许我将对象转换为函数参数的信息?

1 个答案:

答案 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.