我想知道是否可以在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)