1

/* 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 循环的情况下动态创建数组时传递一些默认值。另外请告诉我,传递这些值的语法是什么?

4

1 回答 1

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) { }初始化成员a和。bab

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

x = new A[3]{ {10, 5}, {1, 2}, {4, 5} };
于 2013-11-01T04:44:42.490 回答