gpt4 book ai didi

C++ 数组初始化

转载 作者:行者123 更新时间:2023-11-27 23:34:40 25 4
gpt4 key购买 nike

当我尝试创建测试 t[2] 时,下面的代码给出了编译错误;因为没有默认的构造函数。

但是如果我创建 Test t[2] = {test(1,2), test(2,3)}; 那么它就可以正常工作了。

1)但是想想一个情况,如果我们要创建超过 100 个数组元素。我们需要在花括号中创建 100 个元素,例如.. 测试 t[100] = {test(1,2), test(1,2)……/100 次/};

上面的代码很难维护。另一种解决方案是创建采用 2 个整数并在循环中运行的公共(public)成员函数。这解决了问题,但我想知道任何其他好的方法。

2) 如果我使用 new 创建它

Test *t = new test[10];

我收到编译错误(没有默认构造函数)。如何解决这个问题。

class test
{
int _a;int _b;

public:
test(int a, int b);
void display();
};


int _tmain(int argc, _TCHAR* argv[])
{
test t[10];

for (int i = 0 ; i< 10; i++)
t[i].display();
}

最佳答案

为了构建数组中的 10 个元素,编译器必须以某种方式通过构造函数来实例化它们。对于数组,只能使用默认构造函数(不带参数),因为您不能将任何参数传递给数组中的元素。因此你必须证明一个构造函数

test::test()

不接受任何争论。

关于C++ 数组初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1660352/

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