如何在C ++中为存储库分配内存?
这是存储库类:
class Repository{
private:
DynamicVector<Medicine> MedList;
};
当我在C中使用结构时,initRepository函数(构造函数)看起来像这样:
Repository* initRepository()
{
Repository* repo =(Repository*)malloc(sizeof(Repository));
repo->MedList=createVector();
return repo;
}
但现在我想将C版本转换为C ++版本。我该怎么做?
答案 0 :(得分:2)
你根本不需要做任何特别的事情。只需创建一个Repository
对象:
Repository repo;
这将调用Repository
的隐式定义的默认(如默认行为)默认(如in,不带参数)构造函数,它也将构造成员MedList
。获得Repository
对象后,您可以随意使用它。
如果要使用MedList
函数的结果初始化成员createVector
,可以像这样定义自己的默认构造函数:
class Repository {
public:
Repository()
: MedList(createVector())
{ }
private:
DynamicVector<Medicine> MedList;
};
这使用成员初始化列表(:
之后的所有内容)来初始化MedList
。