gpt4 book ai didi

c++ - 使用模板 class-c++ 打印数组中的值

转载 作者:行者123 更新时间:2023-11-30 01:42:33 24 4
gpt4 key购买 nike

您好,我正在尝试为一个类创建一个模板来打印数组中的值。

#include<iostream>
using namespace std;

template <typename T>
class Array{
public:
Array(T array[], int arraysize){
size=arraysize;
_array=new T[size];
}

~Array(){
delete[] _array;
}
void print(){
for(int i=0; i<size; i++){
cout<<_array[i]<<' ';
}
}
private:
T *_array;
int size;
};

int main(){
int array1[5]={1,2,3,4,5};
Array<int> a(array1,5);
a.print();

float array2[5]={1.012, 2.324, 3.141, 4.221, 5.327};
Array<float> b(array2,5);
b.print();

string array3[]={"Ch1","Ch2","Ch3","Ch4","Ch5"};
Array<string> c(array3,5);
c.print();

return 0;

}

这是代码,我想知道哪里出了问题,因为它会打印出随机数。

最佳答案

该代码使用 new 创建了模板的类成员 _array,但没有将其初始化为任何东西,这就是您打印出随机垃圾的原因。

构造函数接收参数array,并使用该参数传递初始化数组。但是,构造函数完全忽略了该参数,并且没有对它执行任何操作。

显然,您的意图是将模板构造函数接收的数组内容作为参数复制到 _array 中。但是缺少该代码。

array 参数的内容不会自己复制到_array 中。您必须编写代码来执行此操作。

关于c++ - 使用模板 class-c++ 打印数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39501095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com