我是c +的新手,有一种方法可以将用户定义的参数传递给模板。
假设有一个模板类,如下所示:
template <Class T>
class Stack
{
// .....
}
int main()
{
Stack<employee>; // here employee needs to be obj of a class
}
有人可以通过示例解释或指导我谈谈这个问题。
非常感谢
答案 0 :(得分:1)
C ++模板通常适用于类型,有时也适用于整数值。由于您有一个对象而不是一个类型,因此您无法将其传递给模板。
但是,您可以从C ++ 11开始使用decltype
从对象向后转到其类型。例如,如果您使用了auto widget = someObject.someMethod();
并且没有widget
的类型可供使用,但想要std::vector
个类型,则可以使用{{ 1}}创建一个包含任何类型std::vector<decltype(widget)> x;
的对象的向量。
答案 1 :(得分:-2)
不,模板参数在一般情况下应该是类型名称(例如,类,结构,内置类型等)。它不能是类类型的对象。虽然在某些特殊情况下,它可以是int类型的变量/值
我建议你做一些阅读以更好地理解模板 http://www.cprogramming.com/tutorial/templates.html http://www.codeproject.com/Articles/257589/An-Idiots-Guide-to-Cplusplus-Templates-Part http://www.josuttis.com/tmplbook/