C++类模板是一种通用的编程工具,可以创建可以适用于多种数据类型的类。它们允许在类定义中使用参数,以便根据需要实例化具体的类。
使用C++类模板时,首先需要定义模板。模板定义的语法如下:
```cpp
template <typename T>
class MyClass {
// 类成员和方法的定义
};
其中,typename T
是模板参数,它可以是任何类型。在类定义中,可以使用 T
来代表该类型。
接下来,我们可以使用模板来实例化具体的类对象。例如,如果我们想创建一个可以存储整数的类对象,可以这样做:
MyClass<int> obj1;
这样,obj1
就是一个用整数类型实例化的 MyClass
对象。
对于类模板中的方法定义,可以在类内部进行定义,也可以在类外部进行定义。如果选择在类外部定义方法,可以使用 template
来指明该方法属于类模板。
下面是一个示例,演示了类模板的使用:
template<typename T>
class MyStack {
private:
T* stack;
int size;
public:
MyStack() {
size = 0;
stack = new T[100];
}
void push(T element) {
stack[size++] = element;
}
T pop() {
return stack[--size];
}
};
int main() {
MyStack<int> stack;
stack.push(1);
stack.push(2);
stack.push(3);
int val = stack.pop();
cout << val << endl; // 输出3
return 0;
}
在上面的示例中,我们定义了一个 MyStack
类模板,用于创建可以存储任意类型数据的栈。然后,在 main
函数中,我们使用 MyStack
实例化了一个存储整数的栈对象,并进行了一些操作。
希望这个例子能帮助你理解C++类模板的使用。如果还有其他问题,请随时提问!