c++定义类模板ABC,其内含成员函数set和get。用ABC生成对象abc1和abc2。它们的数组元素数不同,显示的结果也不同。
时间: 2024-03-03 17:51:47 浏览: 73
好的,我来为您提供一个参考实现。
```c++
#include <iostream>
template<typename T, size_t N>
class ABC {
private:
T data[N];
public:
void set(size_t index, T value) {
if (index >= N) {
throw std::out_of_range("Index out of range");
}
data[index] = value;
}
T get(size_t index) const {
if (index >= N) {
throw std::out_of_range("Index out of range");
}
return data[index];
}
};
int main() {
ABC<int, 3> abc1;
ABC<std::string, 4> abc2;
// abc1
abc1.set(0, 10);
abc1.set(1, 20);
abc1.set(2, 30);
for (size_t i = 0; i < 3; ++i) {
std::cout << abc1.get(i) << " ";
}
std::cout << std::endl;
// abc2
abc2.set(0, "hello");
abc2.set(1, "world");
abc2.set(2, "abcd");
abc2.set(3, "efgh");
for (size_t i = 0; i < 4; ++i) {
std::cout << abc2.get(i) << " ";
}
std::cout << std::endl;
return 0;
}
```
这里定义了一个模板类 `ABC`,它包含一个大小为 N 的数组,并提供了 `set` 和 `get` 两个成员函数用于设置和获取数组元素。在测试代码中,我们分别创建了两个不同类型的 `ABC` 对象 `abc1` 和 `abc2`,并进行了一些基本操作的测试。需要注意的是,它们的数组元素数不同,并且显示的结果也不同。
阅读全文