8

我创建了 2 个类,Branch 和 Account,我希望我的 Branch 类有一个 Account 指针数组,但我没有做到。它说“不允许不完整的类型”。我的代码有什么问题?

#include <string>
#include "Account.h"

using namespace std;



    class Branch{

    /*--------------------public variables--------------*/
    public:
        Branch(int id, string name);
        Branch(Branch &br);
        ~Branch();
        Account* ownedAccounts[];    // error at this line
        string getName();
        int getId();
        int numberOfBranches;
    /*--------------------public variables--------------*/

    /*--------------------private variables--------------*/
    private:
        int branchId;
        string branchName;
    /*--------------------private variables--------------*/
    };
4

2 回答 2

12

尽管可以创建指向前向声明类的指针数组,但不能创建大小未知的数组。如果要在运行时创建数组,请创建一个指向指针的指针(当然也允许):

Account **ownedAccounts;
...
// Later on, in the constructor
ownedAccounts = new Account*[numOwnedAccounts];
...
// Later on, in the destructor
delete[] ownedAccounts;
于 2013-04-05T01:25:09.860 回答
5

你需要指定数组的大小......你不能让括号像这样悬空,里面没有任何东西。

于 2013-04-05T01:25:30.390 回答