|
|
|
Forum 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
.......
}
|
|
|
|
|
Supreme 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
|
|
|
|
|
Forum Member
      
участник
Last Login: 21.10.2006 17:09
Сообщ.: 27,
Visits: 231
|
|
|
|
|
|
Forum 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)
и на вторую функцию тоже :-(
|
|
|
|
|
новичок
      
участник
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)
{
....
}
|
|
|
|
|
Forum Member
      
участник
Last Login: 21.10.2006 17:09
Сообщ.: 27,
Visits: 231
|
|
| Пасиб, разобралась, просто прототипы были не там.
|
|
|
|