簡體   English   中英

動態數組,動態構造函數

[英]Dynamic array, 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(){

}

 };

在我看來,您需要:

1)基類- Expense 您可以根據需要擴展它,也可以原樣使用。

2)指向Expense對象的指針或更好的智能指針的容器。 如果需要通過某些參數快速查找,請查找std::vectorstd::map

3)使用newnew Expense()動態創建新費用。

4)添加到容器中:

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

並在完成后釋放內存。

編輯:

由於您的代碼是完全錯誤的,因此建議閱讀一本不錯的C ++書籍或教程,然后采用我建議的方法。

在我看來,您需要考慮創建一個包含預算信息(月,食物,交通等)的結構。 然后,如果可以使用STL,請研究創建結構的向量,該向量可以輕松地創建用戶所需的長達數月的費用數據。 然后將所有內容包裝在一個類中以創建該功能的方法。

研究STL向量類。 向量是動態數組,可以是任何類型,從基本數據類型(例如整數)到更復雜的東西(例如用戶定義的數據類型)(在您的情況下為費用結構)。 研究載體。 如果您已經熟悉數組,它們將非常容易實現和使用。

但是,請提供更多有關您可以做什么和不能做什么的信息。

我的DB編碼經驗表明我將每種費用都放在單獨的記錄(對象)中

這樣會更好

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所說。

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM