C++将类作为参数传递

Und*_*ned 26 c++

我想知道是否可以在c ++中将类作为参数传递.没有传递一个类对象,但类本身允许我像这样使用这个类.

void MyFunction(ClassParam mClass)
{
    mClass *tmp = new mClass();
}
Run Code Online (Sandbox Code Playgroud)

以上不是真正的代码,但它有希望解释我在一个例子中想要做的事情.

Meh*_*ari 37

您可以使用模板来完成类似的操作(但不完全是这样):

template<class T>
void MyFunction()
{
    T *tmp = new T();
}
Run Code Online (Sandbox Code Playgroud)

并称之为MyFunction<MyClassName>().

注意这样,你不能用"变量"代替T.它应该在编译时知道.


And*_*ndy 19

C++不像其他语言那样存储关于类的元数据.假设您总是使用带无参数构造函数的类,您可以使用模板来实现相同的功能:

template <typename T>
void MyFunction()
{
    T* p = new T;
}
Run Code Online (Sandbox Code Playgroud)