编写程序,实现动态顺序表,增加拷贝构造函数 c++ public private
时间: 2024-11-04 07:11:04 浏览: 15
在 C++ 中,动态顺序表(也称为动态数组或动态内存管理列表)通常会包含私有成员变量用于存储数据,以及公共成员函数进行操作。下面是一个简单的例子,展示如何编写一个动态顺序表,包括拷贝构造函数:
```cpp
#include <iostream>
// 定义动态顺序表模板,存放 T 类型的数据
template <typename T>
class DynamicList {
private:
std::vector<T> elements; // 私有成员,动态存储数据
int capacity; // 当前元素容量
public:
// 构造函数
DynamicList(int initial_capacity = 0) : capacity(initial_capacity) {}
// 拷贝构造函数
DynamicList(const DynamicList& other) {
if (other.capacity > 0) {
elements.resize(other.capacity);
for (int i = 0; i < other.capacity; ++i) {
elements[i] = other.elements[i];
}
}
capacity = other.capacity;
}
// 其他公共成员函数(如插入、删除等)
// 添加元素
void push_back(T value) {
if (capacity == elements.size()) {
resize(capacity * 2); // 当满时,扩大一倍容量
}
elements.push_back(value);
}
// 仅作为示例,实际应用需要提供适当的resize方法
void resize(int new_capacity) {
elements.resize(new_capacity);
}
// 打印列表内容
void print() const {
for (const auto& elem : elements) {
std::cout << elem << " ";
}
std::cout << "\n";
}
};
int main() {
DynamicList<int> list1(5);
list1.push_back(1);
list1.push_back(2);
list1.print();
DynamicList<int> list2(list1); // 使用拷贝构造函数创建list2
list2.push_back(3);
list2.print();
return 0;
}
```
在这个例子中,`DynamicList`类有两个关键部分:私有的`elements`向量(用于存储数据)和公开的`push_back`和`print`函数(用于操作)。拷贝构造函数接收另一个动态列表,并复制其内容到新创建的对象中。
阅读全文