我正在用 C++ 完成一项作业,这是一种我不是特别精通的语言。
我正在尝试在文件 main.cpp 中声明“Account”对象的动态数组:
Account * acctArray = new Account[];
main.cpp 包含 Account.h:
class Account {
private:
int customerID;
int BSB;
int acctNumber;
string surname;
string firstName;
double balance;
double withdrawn;
public:
Account() {};
//setters
void setCustID(int ID);
void setBSB(int inBSB);
void setAcctNo(int number);
void setSurname(string sname);
void setFirstName(string fname);
void setBalance(double bal);
void setWithdrawn(double withd);
//getters
//(snipped for irrelevance)
//methods
bool withdraw(double amount);
};
但是,当在我的uni的unix机器(作业必须提交的机器)上编译时,我收到以下错误:
"main.cpp", line 130: Error: The type "Account[]" is incomplete.
我尝试编译
Account * acctArray = new Account[5];
看看我是否可以隔离问题,并且这一行编译得很好。
我做错了什么?我担心解决方案在于指针/引用以及我对其缺乏理解。
最佳答案
C++ 中的数组具有固定大小。没有内置的“动态数组”功能。如果您想要动态数组,请使用 std::vector<Account>
.
I am working on an assignment in C++, a language I am not particularly proficient in.
最好避免new
并尽可能进行显式动态分配。如果您认为需要使用 new
动态分配某些内容并自己管理它,可能有更好的方法来完成任务。
关于C++ 对象数组 - 类型不完整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12102792/