Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.63
Stesh
0 / 0 / 0
Регистрация: 30.04.2010
Сообщений: 27
#1

Использование своих функций, error C2601 - C++

31.07.2006, 16:13. Просмотров 2365. Ответов 5
Метки нет (Все метки)

Подскажите пожалуйста. У меня есть пара функций, есть для них прототипы, а компилер говорит, что неправильное определение функций, я сомтрела в мсдн по коду ошибки, но не разобралась.



Может я не туда прототипы сую?

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

я прототипы в myprojDlg.h ставлю:
C++
1
2
3
int  dayInMonth(int numb_month, int year);
 
bool  checkvisokos(int god);
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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 
.......
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2006, 16:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Использование своих функций, error C2601 (C++):

Error C2601: main: недопустимые локальные определения функций - C++
#include <iostream> #include <ctime> using namespace std; int dieroll (){ int chance=0; srand (time(NULL)); ...

error C2601: 'main' : local function definitions are illegal fatal error C1004: unexpected end of file found - C++
День добрый люди написал програму выдает 2 ошибки че не так подскажите error C2601: 'main' : local function definitions are illegal ...

Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов - C++
Здравствуйте!!! Я бы хотел попросить помоч решить...ну или скинуть примеры таких задач, если вдруг у вас они завалялись на компе или...

Итерационные циклы,Определение и вызов функций,Использование библиотечных функций stdio.h - C++
Помогите решить задания: 1.Дано натуральное число n. Найти разность между первой цифрой этого числа и суммой всех остальных. ...

Работа с двумерными числовыми массивами. Использование указателей. Использование функций пользователя. - C++
Помогите пожалуйста!!!!!!! Сделать три варианта: первый вариант – передача данных между функциями с помощью глобального...

Использование функций и шаблонов функций - C++
Составьте программу – формирование цены на молоко. Животновод в начале каждой зимы цену на молоко на р%, а каждым летом снижает на столько...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Vyacheslav
Сообщений: n/a
31.07.2006, 16:35 #2
Один из вариантов ошибки описанный в MSDN : Code tries to define a function within a function. - код пытается определить функцию внутри функции, в C++ нельзя использовать вложенные функции. Вроде этот случай.
C++
1
2
3
4
5
6
7
8
9
void CMyprojDlg::OnOK() 
{
UpdateData (TRUE);
int dayInMonth(int numb_month, int year)
{
bool checkvisokos(int god)
{
....
}}}
Stesh
0 / 0 / 0
Регистрация: 30.04.2010
Сообщений: 27
31.07.2006, 16:41  [ТС] #3
понятно..спасибо.
Stesh
0 / 0 / 0
Регистрация: 30.04.2010
Сообщений: 27
31.07.2006, 19:03  [ТС] #4
ну вот...перенесла функции...закомпилилось, но теперь линковщик ругается:

error LNK2001: unresolved external symbol "public: int __thiscall CMyprojDlg::dayInMonth(int,int,bool)" (?dayInMonth@CMyprojDlg@@QAEHHH_N@Z)



и на вторую функцию тоже :-(
ftor
0 / 0 / 0
Регистрация: 14.06.2006
Сообщений: 9
31.07.2006, 20:13 #5
есть ли уверена, что ф-я реализвана в виде:
C++
1
2
3
4
int CMyprojDlg::dayInMonth(int numb_month, int year)
{
// ...
}
А то она может быть в виде:
C++
1
2
3
4
int dayInMonth(int numb_month, int year)
{
// ...
}
Stesh
0 / 0 / 0
Регистрация: 30.04.2010
Сообщений: 27
31.07.2006, 20:40  [ТС] #6
Пасиб, разобралась, просто прототипы были не там.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2006, 20:40
Привет! Вот еще темы с ответами:

Использование функций и шаблонов функций - C++
Люди помогите пожалуйста буду очень благодарна) вобщем вот первая часть лабы Написать программу, функция main которой включает...

C/C++ Использование функций, использование break - C++
Здравствуйте. Не знал как назвать тему, боялся что, если назову "КАК ЭТО РАБОТАЕТ?" то её удалят. Пишу программу для вычисления длинных...

Ошибка C2601: 'too': local function definitions are illegal - C++
почему выдаёт ошибку и как её исправить? error C2601: 'too': local function definitions are illegal программа: //...

Использование функций - C++
Здравствуйте. Помогите решить нижеследующую задачу. В данный момент нужно переделать данную задачу с использованием функций. Целый день...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
31.07.2006, 20:40
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru