[英]Class with struct in it.. C++
我有一堂課
class piet3 : public Pieteikums
{
public:
piet3();
virtual ~piet3();
void set_invoice(string nDate, float nPrice);
protected:
private:
struct invoice
{
string date;
float price;
};
invoice arr[30];
};
我的cpp:
#include <iostream>
#include "piet3.h"
using namespace std;
piet3::piet3()
{
}
piet3::~piet3()
{
}
void piet3::set_invoice(string nDate, float nPrice)
{
struct invoice.date = nDate;
}
基本上我想做的是。 我想讓用戶輸入他們所花費的價格以及發生的日期,並將其全部作為結構放入數組中。
就像arr [0] = struct1一樣,arr [1] = struct2。
我知道他們的問題出在發票上,但我無法弄清楚。
主要:
//everything before is declared
piet3 object;
cin >> date;
cin >> price;
object.set_invoice (date,price);
主要問題在這里(語法無效):
void piet3::set_invoice(string nDate, float nPrice)
{
struct invoice.date = nDate;
}
您應該具有以下內容:
void piet3::set_invoice(string nDate, float nPrice)
{
arr[lines].date = nDate;
arr[lines].price = nPrice;
++lines;
}
lines
是要添加的新私人數據成員,用於計算發票記錄。
更好的是,您可以使用vector
代替原始數組:
#include <vector>
// ...
private:
struct invoice
{
string date;
float price;
};
vector<invoice> arr;
}; // class piet3
您沒有添加lines
數據成員,並且發票沒有30
條記錄限制:
void piet3::set_invoice(string nDate, float nPrice)
{
arr.push_back({nDate, nPrice});
}
還應考慮到,對於真正的軟件而言, float
/ double
會導致嚴重的會計問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.