【发布时间】:2016-01-10 13:07:14
【问题描述】:
我有一个测试离线应用程序,它应该用作销售硬拷贝音乐(如唱片)的 e-bay。用户将能够出售和购买记录(这是一个测试应用程序,因此信用被表示为一个简单的变量)。我有两个动态数组:一个用于项目,一个用于用户,两个数组都在负责数据操作的 Session 类中。数组保存为二进制文件并在启动时加载。我的主要问题是我无法使用用户列表数组进行操作,尽管我可以对项目数组执行任何操作。为了简单起见,我省略了大部分代码,以下只是重要的部分。
class User {
string password;
string username;
int credit;
}
class Item {
string name;
string label;
int price;
}
class Vinyl:public Item{}
class Disk:public Item{}
class Session{
Item **itemlist;
User **userlist;
Session() {
itemlist=new Item*[100];
userlist=new User*[100];
}
void CreateItem(string name,string label,int price,) {
itemlist[lsize]=new Vinyl(name,label,price);
}
void CreateUser(string uname, string pass) {
list[usize]=new User(uname,pass,count);
}
}
【问题讨论】:
-
当你想要一个 C++ 中的“动态数组”时,你应该自动想到
std::vector。 -
标记为
c++14,但使用new和指向指针的指针。母亲。的。上帝。 -
你说“数组保存到二进制文件”我也很担心,你只保存指针吗?您是否“按原样”保存结构?两者都不会很好,你真的应该了解serialization。
-
保存过程仍在开发中,但我想保存/加载整个结构。 @ildjarn 抱歉,规范不清楚,但我现在正在学习 c++,因此规范可能会产生误导。