Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2010, 15:06   #1
Dark_anamnesis
 
Регистрация: 10.04.2010
Сообщений: 3
Восклицание Проблема с объявлением функции

Прблема в следующем, я задаю функцию:

Код:
void Vopr()
{
switch(vopros)
{
case 1:
Form1->Label1->Caption = "Вы питаете особенную слабость к..";
Form1->Button2->Caption = "A - Шоколаду";
Form1->Button3->Caption = "B - Йогурту";
Form1->Button4->Caption = "C - Салатам";
break;
... и т.д.
}
Объявляю ее в "public:", и мне нужно вызывать эту функцию по нажатию кнопки:

Код:
void __fastcall TForm1::Button4Click(TObject *Sender)
{
vopros++;
Vopr();
}
но проблема в том, что при компиляции выдает ошибку:
[Linker Error] Unresolved external 'TForm1::Vopros()' referenced from H:\ПРОГРАММИРОВАНИЕ\ЛАБА 2\UNIT1.OBJ

Помогите, что это и как с этим бороться? Может я неправильно в public объявляю?? Пробовал так:
Код:
public: void Vopr();
и так:
Код:
public: Vopr();
Переменная vopros - глобальная.
Dark_anamnesis вне форума Ответить с цитированием
Старый 08.11.2010, 15:16   #2
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

если обьявление не в классе, то :
Код:
void Vopr();
// немного кода
void Vopr(){
// тело функции
}
Если же в классе, то :
Код:
class ClassName{
public:
    void Vopr();
};
//немного кода
void ClassName::Vopr(){
// тело функции
}
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux
ozo вне форума Ответить с цитированием
Старый 08.11.2010, 15:24   #3
Dark_anamnesis
 
Регистрация: 10.04.2010
Сообщений: 3
По умолчанию

Нет, функция объявлена не в классе. А что значит //Немного кода? что конкретно писать? все что есть у меня в теле функции, кроме того что она выводит в caption она больше ничего не делает,у меня вообще сначала все это было в formcreate, и проходил я его с помощью form1->formcreate(sender), все прекрасно работало, но злой препод сказал: "не, нене, не, ну не, не, не, так нельзя, не... делай отдельную функцию"
Dark_anamnesis вне форума Ответить с цитированием
Старый 08.11.2010, 18:28   #4
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

если вам недостаточно этой подсказки, почитайте книжек, а не конспектов своих укуренных преподавателей.
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux
ozo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функции . Проблема с пхп Abuhamed PHP 13 11.02.2010 12:47
Структуры+функции, Проблема с преобразованием. CooL_bobrui Общие вопросы C/C++ 7 25.11.2009 17:58
Невероятный баг с объявлением указателей. Парсифаль Общие вопросы C/C++ 25 05.05.2009 11:48
проблема с дублированием функции apodgorny Общие вопросы Delphi 1 24.04.2009 12:13
Проблема с графиком функции zeppelin58 Общие вопросы C/C++ 1 15.12.2008 14:16