Динамический массив в классе - PullRequest
0 голосов
/ 15 апреля 2011

Я какое-то время искал, пытаясь понять, как создать класс, а также как включить в него динамический массив.

Я пытаюсь создать программу c ++ для банковского счета, которая будетсоздать неограниченное количество учетных записей (память является единственным ограничением), поэтому я хочу динамический массив, где, скажем, p [1] - первая учетная запись, а p [2] - вторая учетная запись, и чтобы она была членомкласс BankAccount.Так что я могу иметь массив в ячейке памяти 1, он же номер счета 1, а затем иметь другую информацию, такую ​​как имя, баланс и т. Д., Связанные с ним.может быть что-то вроде, если у меня есть массив p [] в классе bankAccount, тогда я могу использовать p [1] .name.

Я новичок в этом сайте, если есть лучшие способы задать вопросы или привести примеры кода, пожалуйста, не стесняйтесь, сообщите мне.

Это основная часть, с которой у меня возникают проблемы, объявляя динамический массив в качестве члена класса:

class bankAccount
{
    int i;
    int index;
    int AccountNum;
    double balance;
    string last;
    string first;
public:
    void intro();
    void deposit();
    void withdraw();
    void newAcc ();
    void editAcc();
    void chgAcc();
    void print();
    bankAccount::bankAccount();
}p [10]; // This is what i want to be dynamic

Спасибо.

Ответы [ 3 ]

3 голосов
/ 15 апреля 2011

Я думаю, что структура данных, которую вы ищете, это std::vector. std::vector - это динамический массив под капотом, но все для вас.

Я бы даже сказал, что вы никогда не должны использовать динамический массив в C ++, это то, что я бы классифицировал как концепцию C, которая была заменена. (Все правила имеют свои исключения, но я имею в виду, что, если вы не не знаете , почему вы выбираете динамический массив вместо vector, то вам следует выбрать vector.

0 голосов
/ 15 апреля 2011

Вы выделили backAccount [i], когда мне было 1. Когда вы создаете новую учетную запись, вам нужно будет освободить ее, перераспределить. Также вам будет легче, если вы подадите в суд на std :: vector.

0 голосов
/ 15 апреля 2011

Кажется, что вы пытаетесь реализовать динамический массив самостоятельно, глядя на этот фрагмент кода:

 bankAccount *p; 

C ++ STL уже имеет реализованный динамический массив, то есть std :: vector .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...