定义类模板ABC,其内含成员函数set和get。用ABC生成对象abc1和abc2。它们的数组元素数不同,显示的结果也不同。
时间: 2024-03-22 10:41:02 浏览: 32
以下是定义类模板ABC、生成对象abc1和abc2的示例代码:
```c++
#include <iostream>
using namespace std;
template <typename T>
class ABC{
private:
T data;
public:
void set(T d){
data = d;
}
T get(){
return data;
}
};
int main(){
ABC<int> abc1[3];
abc1[0].set(10);
abc1[1].set(20);
abc1[2].set(30);
cout << abc1[0].get() << " " << abc1[1].get() << " " << abc1[2].get() << endl;
ABC<string> abc2[2];
abc2[0].set("Hello");
abc2[1].set("World");
cout << abc2[0].get() << " " << abc2[1].get() << endl;
return 0;
}
```
在上述示例代码中,我们首先定义了一个类模板ABC,其中包含了一个私有成员变量data和两个公有成员函数set和get。其中,set函数用于设置data的值,get函数用于获取data的值。需要注意的是,该类模板使用了模板参数T,表示data的数据类型可以是任意类型。
在主函数中,我们首先生成了一个包含3个元素的ABC<int>类型的数组abc1,分别设置了数组中三个元素的值,并输出了结果。接着,我们生成了一个包含2个元素的ABC<string>类型的数组abc2,同样设置了数组中两个元素的值,并输出了结果。由于abc1和abc2的元素类型不同,因此它们的输出结果也不同。
运行上述代码,输出结果为:
```
10 20 30
Hello World
```
可以看到,abc1和abc2的元素类型不同,但它们的set和get函数的实现是一样的,因为类模板ABC中的成员函数是通用的,可以适用于任意类型的数据。
阅读全文