/ * 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循环的情况下动态创建数组时传递一些默认值。 还请告诉我,传递这些值的语法是什么?
答案 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) { }
在参数列表中分别使用参数a
和b
初始化成员a
和b
。
然后对于新的调用,你给它一个列表,其中构造函数的参数用花括号组合在一起,如下所示:
x = new A[3]{ {10, 5}, {1, 2}, {4, 5} };