![]() |
|
Модераторы: Poseidon |
![]()
|
|
| bessdsv |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 25.4.2010 Репутация: нет Всего: нет |
Есть код написанный для c++ Builder (ну я думаю среда не важна). Есть задача написать шаблон класса динамического массива. Вроде бы все написал правильно но вот на строчке ShowMessage(StudGroup[0]->GetFIO()); компилятор пишет что такого свойства нет такое ощущение что StudGroup[0] - принадлежит к типу TStudGroup и по этому не видет метода описанного в классе TSudent. Если же писать StudGroup->Items[0]->GetFIO(); то все отрабатывает без проблем. но задача как раз состоит в написании шаблона и чтобы описанная выше конструкция с оператором [] срабатывала. Подскажите что написал не так.
class TStudent{ public: AnsiString Fam, Name, Otc, Fac; TDate BDate; TStudent(AnsiString iFam, AnsiString iName, AnsiString iOtc, AnsiString iFac, TDate iDate); AnsiString GetFIO(); }; TStudent::TStudent( AnsiString iFam, AnsiString iName, AnsiString iOtc, AnsiString iFac, TDate iDate){ Name = iName; Fam = iFam; Otc = iOtc; Fac = iFac; BDate = iDate; } AnsiString TStudent::GetFIO(){ return Fam + ' ' + Name.SubString(1, 1) + ". " + Otc.SubString(1,1) + '.'; } template <class C> class DArray { public: C** Items; int Count; DArray(){ Count = 0; Items = new C*[Count]; }; int Add(C* Item){ Items = (C**)ReallocMemory(Items, (++Count) * sizeof©); Items[Count - 1] = Item; } C& operator [](int Index){ return Items[Index]; } C& operator =(C** Els){ Items = (C**)ReallocMemory(Items, (Els->Count) * sizeof©); for (int i = 0; i < Els->Count; i++) Items[i] = Els[i]; } }; typedef DArray<TStudent> TStudGroup; TForm1 *Form1; TStudGroup *StudGroup; __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } void __fastcall TForm1::FormCreate(TObject *Sender) { TStudent* Student; StudGroup = new TStudGroup; Student = new TStudent("Иванов", "Иван", "Иванович", "Математический", StrToDate("06.01.1988")); StudGroup->Add(Student); ShowMessage(StudGroup[0]->GetFIO()); } void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action) { delete[] StudGroup; } |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |