我有一个带结构的元素类,我想在数组中放置一些对象。我的班级:
class element
{
public:
//properties
AnsiString ON; //order nummer
AnsiString MO; //order merk
AnsiString SN; //element nummer
AnsiString RS; //element afwerking
AnsiString OW; //wapeningspatroon
AnsiString CN; //element calculation number
int el_length; //element lengte
int el_width; //element hoogte
int el_beginX; //element beginpunt
int el_concrete_height; //element hoogte beton
int el_iso_height; //element isolatie hoogte
int el_weight; //element gewicht
//struct om objecten aan te maken
struct element(AnsiString a_ON, AnsiString a_MO, AnsiString a_SN, AnsiString a_RS, AnsiString a_OW, AnsiString a_CN,
int a_elLength, int a_elWidth, int a_elBeginX, int a_elConcreteHeight, int a_elIsoHeight)
{
ON = a_ON;
MO = a_MO;
SN = a_SN;
RS = a_RS;
OW = a_OW;
CN = a_CN;
el_length = a_elLength;
el_width = a_elWidth;
el_beginX = a_elBeginX;
el_concrete_height = a_elConcreteHeight;
el_iso_height = a_elIsoHeight;
};
无论如何这个班级没有问题。
我有另一个头文件:
DynamicArray<element> ElementArray;
element ElementObject("", "", "", "", "", "", 0, 0, 0, 0, 0,); // just example
ElementArray.set_length(10);
ElementArray[0] = ElementObject;
这是我的错误: [bcc32Error] sysdyn.h(689):问题:E2285无法找到&#39; element :: element()&#39;
的匹配项所以我的问题是如何解决这个问题呢?
答案 0 :(得分:2)
当你set_length
的{{1}}时,它会使用默认构造函数创建的对象填充数组。要做到这一点,DynamicArray
需要提供一个:
element
答案 1 :(得分:1)
错误表明您的element
类没有默认构造函数,尽管请求了一个。最有可能的是,DynamicArray
模板需要包含的元素类型以使默认构造函数能够分配对象,例如在致电set_length(10)
时。
要解决此问题,只需在您的班级中添加默认构造函数(即element(){...}
),即可修复错误。