下面是一个使用C++语言的示例代码来创建一个包含不同T类型的异构对象数组:
#include
#include
#include
// 定义一个基类
class Base {
public:
virtual void print() const = 0;
};
// 定义派生类A
class A : public Base {
public:
void print() const override {
std::cout << "This is class A" << std::endl;
}
};
// 定义派生类B
class B : public Base {
public:
void print() const override {
std::cout << "This is class B" << std::endl;
}
};
int main() {
// 创建异构对象数组
std::vector> objects;
// 添加对象到数组
objects.push_back(std::make_unique());
objects.push_back(std::make_unique());
// 遍历数组并调用对象的方法
for (const auto& obj : objects) {
obj->print();
}
return 0;
}
在上述代码中,我们首先定义了一个抽象基类Base
,并声明了一个纯虚函数print()
。然后,我们创建了两个派生类A
和B
,它们分别重写了print()
函数。
接下来,在main()
函数中,我们使用std::vector
来创建了一个异构对象数组objects
。我们使用std::make_unique
函数创建了A
和B
的对象,并将它们添加到数组中。
最后,我们使用范围-based的for
循环遍历了数组中的所有对象,并调用了它们的print()
函数。
这样,我们就成功地创建了一个包含不同T类型的异构对象数组,并能够对它们进行操作。