我有这个结构(数组),我想用Class对象填充。实现这一目标的程序是什么。我使用/书籍的教程不是那么详细,我不知道该怎么做。(因为我的尝试失败了)
ARRAY STRUCT struct.h
struct Arr{
int days;
int *M;
};
typedef Arr* Array;
struct.cpp
void constr(Array &o){
//Construct of 1*31 Matrix
o=new Arr;
o->days = days;
o->M = new int[o->days];
CLASS
expe.h
class Expe {
private:
int *obj;
public:
Expe();
~Expe();
void setObj(int ,int ,int ,int ,int ,int);
void printObj();
int getObj();
enter code here
expe.cpp
Expe::Expe() {
this->obj=new int[6];
}
Expe::~Expe() {
delete this->obj;
}
ps:我需要使用自己的struct vector.h是不允许的,而且必须是dyanmical
答案 0 :(得分:1)
现在代码是,你的Arr
结构可以包含一个整数数组。如果您希望它保留Expe
个对象,您可以将其定义为:
struct Arr{
int days;
Expe* M;
};
或者,更好的是,使它成为模板类:
template<typename T>
struct Arr
{
int _size;
T* M;
};
我还建议将构造函数移到 struct
而不是方法constr
:
template<typename T>
struct Arr
{
int _size;
T* M;
Arr(int size) : _size(size)
{
M = new T[size];
}
//manage the memory:
~Arr()
{
delete[] M;
}
};
通过使用模板,您可以根据需要专门设置Arr
:
Arr<int> x(10); //creates an array of 10 int's
Arr<Expe> y(10); //creates an array of 10 Expe's
作为旁注,因为这不是PHP,所以this->
在类上下文中并不是必需的,除非你有一个与成员同名的局部变量,你没有