在c++中定义工程应用中常用的向量类,并在主函数中调用测试,要求: 设计恰当的数据成员。 具有缺省值的构造函数。 重载加法运算符实现相关运算。
时间: 2024-12-29 18:33:20 浏览: 18
在C++中,常用的标准库中的`std::vector`类可以作为工程应用中处理动态数组的工具。`vector`是一个动态数组容器,它可以在运行时自动调整大小,非常方便。下面是一个简单的`MyVector`类,它继承自`std::vector<int>`,并添加了缺省值的构造函数以及加法运算符的重载:
```cpp
#include <iostream>
#include <vector>
class MyVector : public std::vector<int> {
public:
// 构造函数,设置初始容量为0,元素默认为0
MyVector(size_t capacity = 0) : std::vector<int>(capacity, 0) {}
// 重载加法运算符,将两个向量相加并将结果存入当前向量
MyVector operator+(const MyVector& other) {
MyVector result(*this);
for (size_t i = 0; i < other.size(); ++i) {
result[i] += other[i];
}
return result;
}
// 显示内容
void display() const {
for (const auto& num : *this) {
std::cout << num << " ";
}
std::cout << '\n';
}
};
int main() {
// 使用缺省值构造函数创建向量
MyVector v1; // 空向量,默认值全为0
MyVector v2(5); // 初始化容量为5,所有元素为0
// 调用加法运算符
v2.push_back(1);
v2.push_back(2);
v2.push_back(3);
v2.push_back(4);
v2.push_back(5);
MyVector sum = v1 + v2; // 将v1与v2相加
sum.display(); // 打印结果
return 0;
}
```
在这个例子中,`MyVector`类继承自`std::vector<int>`,并且在初始化时设置了默认值0。重载的`operator+`函数实现了两个`MyVector`的加法操作,将第二个向量的元素逐个累加到第一个向量上。在`main`函数中,我们创建了两个`MyVector`对象,并进行了加法操作的演示。
阅读全文