在C ++中为动态数组提供默认值

时间:2013-11-01 04:30:28

标签: c++ arrays class pointers

/ * Hello Friends ...我是C ++ * /

的初学者
#include<iostream>
#include<conio.h>
using namespace std;

class A
{
    protected:
        int a,b;
    public:
        A():a(0),b(0){   }

};

int main()
{

 A *x;
 x = new A[20];
delete []x;
getch();
return 0;
}

我的问题是,我们如何在A类中创建一个参数化的构造函数,这样我可以在不使用for循环的情况下动态创建数组时传递一些默认值。 还请告诉我,传递这些值的语法是什么?

1 个答案:

答案 0 :(得分:0)

我认为你想要的是:

#include<iostream>
#include<conio.h>
using namespace std;

class A
{
    protected:
        int a,b;
    public:
        A():a(0),b(0){   }
        A(int a, int b) : a(a), b(b) {  }

};

int main()
{
    A *x;
    x = new A[3]{ {10, 5}, {1, 2}, {4, 5} };
    delete []x;
    getch();
    return 0;
}

请注意,您在代码中错误地使用了delete []a;而不是正确的delete []x;

构造函数A(int a, int b) : a(a), b(b) { }在参数列表中分别使用参数ab初始化成员ab

然后对于新的调用,你给它一个列表,其中构造函数的参数用花括号组合在一起,如下所示:

x = new A[3]{ {10, 5}, {1, 2}, {4, 5} };