类模板拷贝构造函数怎么写
时间: 2023-12-02 11:40:39 浏览: 80
类模板的拷贝构造函数可以通过以下方式进行编写:
```cpp
template<typename T>
class MyClass {
public:
T* data;
int size;
// 默认构造函数
MyClass() : data(nullptr), size(0) {}
// 带参数构造函数
MyClass(T* arr, int s) : size(s) {
data = new T[size];
for (int i = 0; i < size; i++) {
data[i] = arr[i];
}
}
// 拷贝构造函数
MyClass(const MyClass& other) : size(other.size) {
data = new T[size];
for (int i = 0; i < size; i++) {
data[i] = other.data[i];
}
}
// 析构函数
~MyClass() {
delete[] data;
}
};
```
在上述代码中,我们定义了一个类模板`MyClass`,其中包含了默认构造函数、带参数构造函数、拷贝构造函数和析构函数。其中,拷贝构造函数的定义如下:
```cpp
MyClass(const MyClass& other) : size(other.size) {
data = new T[size];
for (int i = 0; i < size; i++) {
data[i] = other.data[i];
}
}
```
在拷贝构造函数中,我们首先将`other`对象的`size`赋值给当前对象的`size`,然后为当前对象的`data`分配内存空间,并将`other`对象的`data`中的元素逐一复制到当前对象的`data`中。
阅读全文