Я использую Builder 6.
Понятия не имею, как исправить ошибки:
[C++ Error] loltimer.cpp(11): E2316 '_fastcall TForm1::TForm1(TComponent *)' is not a member of 'TForm1'
[C++ Error] loltimer.cpp(18): E2062 Invalid indirection
Мой код .cpp:
// line 11
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
comboSpell(ComboBox1);
}
//---------------------------------------------------------------------------
void TForm1::comboSpell(TComboBox *combo){
// line 18
*combo ->Items->Add("Flash");
*combo ->Items->Add("Ignite");
*combo ->Items->Add("Exhaust");
*combo ->Items->Add("Teleport");
*combo ->Items->Add("Ghost");
*combo ->Items->Add("Heal");
*combo ->Items->Add("Smite");
*combo ->Items->Add("Barrier");
}
Мой .h код:
public: // User declarations
__fastcall TForm1(TComponent Owner);
void comboSpell(TComboBox *combo);
[Ошибка C ++] loltimer.cpp (11): E2316 «_fastcall TForm1 :: TForm1 (TComponent *)» не является членом «TForm1»
Декларация вашего TForm()
конструктор отличается в вашем .h и .cpp коде, особенно в Owner
параметр. Они должны соответствовать:
public: // User declarations
__fastcall TForm1(TComponent *Owner);
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
...
}
[Ошибка C ++] loltimer.cpp (18): E2062 Недопустимое косвенное обращение
Вы разыменовываете combo
указатель с помощью *
оператор, а затем разыменовывать его снова с ->
оператор. Это не будет работать в этом случае. Вам нужно либо:
Использовать ->
Оператор сам по себе (типичное использование):
combo->Items->Add("Flash");
Использовать .
оператор вместо ->
оператор (не типичный):
(*combo).Items->Add("Flash");
Заголовок имеет параметр как TComponent
и .cpp имеет это как TComponent *
, Вам нужно, чтобы они были одинаковыми.