Class 里面有结构.. C++
Class with struct in it.. C++
我有一个class
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
可能会导致严重的会计问题。
我有一个class
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
可能会导致严重的会计问题。