怎么在C++类中实现自定义数组结构
如何在C++类中实现自定义数组结构
如在.h文件中定义以下结构
------解决思路----------------------
数组确实不支持这种初始化
要么给A的构造函数提供默认参数吧
------解决思路----------------------
A m_a2[5];//这样定义有问题
数组的初始是会调用A的默认构造函数的,所以提供一个默认的构造函数即可;否则请使用指针
------解决思路----------------------
那里因为这样定义初始化时会调用A的默认构造函数,而你的A没有提供,所以才报错。有两种解决办法:
一是你提供A的默认构造函数,二是这样定义A *m_a2[5],在CA构造函数中new出5个A对象然后赋到m_a2中就可以。
如在.h文件中定义以下结构
struct A此时在同一头文件中,定义以下类
{
int _a;
int _b;
int _c;
A(int a, int b, int c):_a(a),_b(b),_c(c){}
};
class CA在.cpp中对其实现
{
public:
CA();
~CA(){}
private:
A m_a1;
A m_a2[5];//这样定义有问题
};
CA::CA()
: m_a1(0,0,0) //可以实现
{
// 如何定义m_a2?
}
------解决思路----------------------
数组确实不支持这种初始化
要么给A的构造函数提供默认参数吧
------解决思路----------------------
A m_a2[5];//这样定义有问题
数组的初始是会调用A的默认构造函数的,所以提供一个默认的构造函数即可;否则请使用指针
------解决思路----------------------
那里因为这样定义初始化时会调用A的默认构造函数,而你的A没有提供,所以才报错。有两种解决办法:
一是你提供A的默认构造函数,二是这样定义A *m_a2[5],在CA构造函数中new出5个A对象然后赋到m_a2中就可以。