在C++中,可以通过使用可变参数模板来实现接受未知数量参数的数组构造函数。可变参数模板是一种能够接受任意数量参数的特殊模板。
下面是一个示例代码,演示如何在C++中实现接受未知数量参数的数组构造函数:
#include <iostream>
template <typename T>
class Array {
public:
// 可变参数模板构造函数
template <typename... Args>
Array(Args... args) {
size = sizeof...(Args); // 获取参数数量
data = new T[size]; // 根据参数数量分配内存
// 利用逗号表达式依次给数组元素赋值
int index = 0;
((data[index++] = args), ...);
}
// 析构函数,释放内存
~Array() {
delete[] data;
}
void print() {
for (int i = 0; i < size; ++i) {
std::cout << data[i] << " ";
}
std::cout << std::endl;
}
private:
T* data;
int size;
};
int main() {
// 创建一个包含不同类型参数的数组
Array<int> arr1(1, 2, 3, 4, 5);
arr1.print();
Array<double> arr2(3.14, 2.718, 1.414);
arr2.print();
Array<std::string> arr3("Hello", "World");
arr3.print();
return 0;
}
在上述示例代码中,我们通过可变参数模板构造函数Array(Args... args)
来接受未知数量的参数。使用逗号表达式将参数逐个赋值给数组元素。在析构函数中,释放了动态分配的内存。
这个示例代码演示了如何在C++中实现一个接受未知数量参数的数组构造函数,可以根据实际需求对其进行修改和扩展。
腾讯云相关产品和产品介绍链接地址:由于要求不能提及云计算品牌商,因此无法提供腾讯云相关产品和产品介绍链接地址。请您自行查阅腾讯云官方文档或网站以获取相关信息。
领取专属 10元无门槛券
手把手带您无忧上云