为存储库构造函数c ++分配内存

时间:2013-03-30 16:10:58

标签: c++

如何在C ++中为存储库分配内存?

这是存储库类:

class Repository{

private:
    DynamicVector<Medicine> MedList;
};

当我在C中使用结构时,initRepository函数(构造函数)看起来像这样:

Repository* initRepository()
{
    Repository* repo =(Repository*)malloc(sizeof(Repository));
    repo->MedList=createVector();
    return repo;
}

但现在我想将C版本转换为C ++版本。我该怎么做?

1 个答案:

答案 0 :(得分:2)

你根本不需要做任何特别的事情。只需创建一个Repository对象:

Repository repo;

这将调用Repository的隐式定义的默认(如默认行为)默认(如in,不带参数)构造函数,它也将构造成员MedList。获得Repository对象后,您可以随意使用它。

如果要使用MedList函数的结果初始化成员createVector,可以像这样定义自己的默认构造函数:

class Repository {
  public:
    Repository()
      : MedList(createVector())
    { }
  private:
    DynamicVector<Medicine> MedList;
};

这使用成员初始化列表(:之后的所有内容)来初始化MedList