использование своих функций, error C2601
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



использование своих функций, error C2601 Expand / Collapse
Автор
Сообщение
31.07.2006 12:13
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 21.10.2006 17:09
Сообщ.: 27, Visits: 231
Подскажите пожалуйста. У меня есть пара функций, есть для них прототипы, а компилер говорит, что неправильное определение функций, я сомтрела в мсдн по коду ошибки, но не разобралась.

Может я не туда прототипы сую?
У меня проект создан через MFC AppWizard; соответственно файлы myproj.cpp myproj.h myprojDlg.cpp myprojDlg.h
я прототипы в myprojDlg.h ставлю:


int dayInMonth(int numb_month, int year);
bool checkvisokos(int god);



void CMyprojDlg::OnOK()
{
UpdateData (TRUE);
int dayInMonth(int numb_month, int year)
{ int dIm;
switch(numb_month)
{
case '1':{dIm=31; ;break; }
case '2':{ if !(checkvisokos(year)) {dIm=28;}else {dIm=29;} break;}
case '3':{dIm=31; break;}
case '4':{dIm=30; break;}
case '5':{dIm=31; break;}
case '6':{dIm=30; break;}
case '7':{dIm=31; break;}
case '8':{dIm=31; break;}
case '9':{dIm=30; break;}
case '10':{dIm=31;break;}
case '11':{dIm=30;break;}
case '12':{dIm=31;break;}

}
return dIm;
}
bool checkvisokos(int god)
{
if ( div(god,4).rem ==0) {return true;}else {return false;}
}
...
int nM = currt.GetMonth();
int nY = currt.GetYear();
int dify=nY-dry;
int difm=nM-drm;
int difd=nD-drd;
...
if (difd .......
}
Сообщ. #901758
31.07.2006 12:35
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 02.08.2008 10:18
Сообщ.: 143, Visits: 1 405
Один из вариантов ошибки описанный в MSDN : Code tries to define a function within a function. - код пытается определить функцию внутри функции, в C++ нельзя использовать вложенные функции. Вроде этот случай.

 

void CMyprojDlg::OnOK()
{
UpdateData (TRUE);
int dayInMonth(int numb_month, int year)
{

bool checkvisokos(int god)
{
....

}}}



Men in black
Сообщ. #901759
31.07.2006 12:41
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 21.10.2006 17:09
Сообщ.: 27, Visits: 231
понятно..спасибо.
Сообщ. #901762
31.07.2006 15:03
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 21.10.2006 17:09
Сообщ.: 27, Visits: 231
ну вот...перенесла функции...закомпилилось, но теперь линковщик ругается:
error LNK2001: unresolved external symbol "public: int __thiscall CMyprojDlg::dayInMonth(int,int,bool)" (?dayInMonth@CMyprojDlg@@QAEHHH_N@Z)

и на вторую функцию тоже :-(
Сообщ. #901772
31.07.2006 16:13


новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 12.11.2006 13:11
Сообщ.: 9, Visits: 12
есть ли уверена, что ф-я реализвана в виде:
int CMyprojDlg::dayInMonth(int numb_month, int year)
{
....
}

А то она может быть в виде:

int dayInMonth(int numb_month, int year)
{
....
}
Сообщ. #901776
31.07.2006 16:40
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 21.10.2006 17:09
Сообщ.: 27, Visits: 231
Пасиб, разобралась, просто прототипы были не там.
Сообщ. #901786
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 7:21