8

Branch と Account の 2 つのクラスを作成しました。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 に答える