C++ 对象数组 - 类型不完整

标签 c++ arrays incomplete-type

我正在用 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/

相关文章:

c++ - 为什么我们不能声明一个 std::vector<Abstract Class>?

c++ - 如何在 Linux 中链接 QT 和 OpenCV

javascript - 使用 jQuery 在数组中追加多个对象

python - numpy数组的可变大小

C 字段类型不完整,没有前向声明

c++ - 关于不完整类型的 SFINAE 的特殊规则

c++ - 有没有办法检测 C++ 中十六进制文字中输入了多少位数字?

c++ - 我需要帮助在 C++ 中尽可能压缩此 IF 语句

java - 不兼容的类型 List 和 ArrayList 的 ArrayList

c++ - 不使用 sizeof 关键字的结构大小