动态数组,动态构造函数

时间:2012-03-21 14:07:02

标签: c++ dynamic constructor

我想获得有关标题中提到的主题的一些很好的信息。

所以,我想得到一些关于如何创建动态类构造函数的好注释/教程,并将类实例保存在一个动态数组中,该数组将由用户定义。我想要解决这个问题:

“一个家庭想要管理每月的开支。为了完成这项任务,家庭需要一个 申请在一个月内存储所有家庭的费用。每项费用都将存入 通过以下要素申请:日(制作当月),金额和金额 费用的类型(家庭希望将其费用分为以下几类:家务管理, 食品,运输,服装,电话和互联网,其他 - 书籍,电影,体育等)。这个家庭需要一个 应用程序,以便重复执行以下功能(每个功能都举例说明):“

谢谢。 PS:我想提一下我是c ++的新手,但是从python那里了解OOP。

编辑:我现在已经走了这么远。

 class ExpC
  {
private:
int *days;
int *houseK;
int *food;
int *transp;
int *cloth;
int *telNet;
int *others;

public:
/* constructor */

ExpC()                 //Constructor
{
int *days,* houseK,*food,*transp,*cloth,*telNet,*others;
}

~ExpC()                //Deconstructor
{

}

void add(){

}

 };

3 个答案:

答案 0 :(得分:2)

在我看来,你似乎需要:

1)基类 - Expense。如果需要,您可以扩展它,或按原样使用它。

2)一个指针容器,或者更好的是指向Expense个对象的智能指针。如果您需要通过某些参数快速查找,请查找std::vectorstd::map

3)使用new动态创建新费用:new Expense()

4)添加到容器中:

std::vector<Expense*> expenses;
expenses.push_back(new Expense());

并在完成后释放内存。

编辑:

由于您的代码完全错误,我建议您阅读一本优秀的C ++书籍或教程,然后采用我建议的方法。

答案 1 :(得分:1)

在我看来,你需要研究如何创建一个包含预算信息(月份,食物,交通等)的结构。然后,如果您可以使用STL,请查看创建结构的向量,这样可以轻松地创建用户需要的月份的费用数据。然后将所有内容包装在一个类中以创建功能方法。

研究STL矢量类。向量是一个动态数组,可以是任何类型,从基本数据类型(如整数)到更复杂的类型(如用户定义的数据类型)(在您的情况下,是费用结构)。研究载体。如果您已经熟悉数组,那么它们很容易实现和使用。

但请提供一些关于你能做什么和不能做什么的更多信息。

答案 2 :(得分:1)

我的数据库编码经验告诉我将每个经历都放在单独的记录(对象)

那就更好了

class Expence {
public:
  enum Type {k_food, k_house, k_transport /*, etc*/};

  Expence (int date, Type type, float amount) :
  date_(date),
  type_(type),
  amount_(amount)
  {}

private:
  int date_; 
  Type type_; 
  float amount_;
};

添加您需要的所有方法。

该计划的其余部分将看起来像Luchian Grigore所说。

希望它有所帮助。