Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/117: Рейтинг темы: голосов - 117, средняя оценка - 4.80
29 / 29 / 7
Регистрация: 26.03.2010
Сообщений: 305

Недопустимые локальные определения функций

27.09.2010, 18:28. Показов 23462. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот почитал еще немного литературы и решил попробовать написать прогу.
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
#include <iostream> 
#include <string.h>
#include <iostream>
 
int main(){
    setlocale(LC_ALL,"Russian");
 
    class Subd{
    private:
        char name[255];
        int kol;
        int god;
        float ryn;
    public:
        int setSubd(char*,int, int, int);
        void show_Subd();
    };
 
    int Subd::setSubd(char *name,int kol,int god,int ryn){
         strcpy(name, "Oracle");
         kol=1;
         god=2488000000;
         ryn=31.1;
    }
    void Subd::show_Subd(){
        cout << "Название фирмы: " << name << endl; 
        cout << "Количество продуктов: " << kol<< endl; 
        cout << "Годовой объем продажи ($): " << god << endl;
        cout << "Часть рынка (%): " << ryn << endl;
    }
}
Но ругается:
error C2601: main::Subd::setSubd: недопустимые локальные определения функций
error C2601: main::Subd::show_Subd: недопустимые локальные определения функций

Что это может значит?

Добавлено через 12 минут
Цитата Сообщение от Chainyk Посмотреть сообщение
Класс, ето новый тип:
C++
1
2
3
4
5
6
7
8
class A
{
int i;
}
void main ()
{
A a;
}
Сейчас а - екземпляр класса А и т.д.
Почитайте Либерти, Джонс "Освой самостоятельно С++ за 21 день", книга очень доходчива
Это я понял

Добавлено через 2 минуты
я же вроди типо обращаюсь к функции, которая лежит в классе Subd, через '::'. Но он ругается че то
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.09.2010, 18:28
Ответы с готовыми решениями:

main: недопустимые локальные определения функций
помогите исправить ошибки в case 3 #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;locale&gt; #include &lt;stdio.h&gt; #include...

Ошибки в игре: недопустимые локальные определения функций
#include &lt;iostream&gt; //Содержит потоки ввода/вывода std::cin и std::cout и все для работы с ними #include &lt;stdlib.h&gt; //Содержит...

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

11
 Аватар для TheMachinist
246 / 178 / 47
Регистрация: 14.06.2010
Сообщений: 422
27.09.2010, 18:28
Кто же создает классы внутри main()?
0
29 / 29 / 7
Регистрация: 26.03.2010
Сообщений: 305
27.09.2010, 18:29  [ТС]
Цитата Сообщение от NikolaWhite Посмотреть сообщение
Кто же создает классы внутри main()?
Ой, че то не подумал
Вытащил за main, все равно тоже самое((
0
 Аватар для TheMachinist
246 / 178 / 47
Регистрация: 14.06.2010
Сообщений: 422
27.09.2010, 18:37
используй : using namespace std;

и проследи чтобы функции(те что не void) возвращали какое-нибудь значение

return что-нибудь;
0
29 / 29 / 7
Регистрация: 26.03.2010
Сообщений: 305
27.09.2010, 18:42  [ТС]
Цитата Сообщение от NikolaWhite Посмотреть сообщение
используй : using namespace std;

и проследи чтобы функции(те что не void) возвращали какое-нибудь значение

return что-нибудь;
using namespace std; это я использую, просто сюда не внес. return тоже подписал, толку нет
0
 Аватар для TheMachinist
246 / 178 / 47
Регистрация: 14.06.2010
Сообщений: 422
27.09.2010, 18:52
в конце функции: return 0; или что ты хочешь чтоб она возвращала.....
у меня твой код ошибок не выдает
0
29 / 29 / 7
Регистрация: 26.03.2010
Сообщений: 305
27.09.2010, 19:03  [ТС]
А я нашел свои ошибки и все вот изменил

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
#include <iostream> 
#include <string.h>
#include <iostream>
using namespace std;
 
class Subd{
    private:
        char name[255];
        int kol;
        int god;
        float ryn;
    public:
        int setSubd(char*,int, int, int);
        void show_Subd();
    };
 
int Subd::setSubd(char *emp_name,int emp_kol,int emp_god,int emp_ryn){
         strcpy(name, "emp_name");
         kol=emp_kol;
         god=emp_god;
         ryn=emp_ryn;
         return 0;
    }
 
void Subd::show_Subd(){
        cout << "Название фирмы: " << name << endl; 
        cout << "Количество продуктов: " << kol<< endl; 
        cout << "Годовой объем продажи ($): " << god << endl;
        cout << "Часть рынка (%): " << ryn << endl;
    }
 
int main(){
    setlocale(LC_ALL,"Russian");
 
     Subd worker;
     worker.setSubd("Oracle",1,2488000000,31.1);
     worker.show_Subd();
 
 
}
Но вот "Годовой обьем продажи пишет большое отрицательное число", это с чем связано?
0
 Аватар для Chainyk
15 / 15 / 2
Регистрация: 24.08.2010
Сообщений: 94
27.09.2010, 19:13
2488000000 не помещаеться в int - в знаковий розряд попала единица. Используй другой тип
1
 Аватар для TheMachinist
246 / 178 / 47
Регистрация: 14.06.2010
Сообщений: 422
27.09.2010, 19:18
Число,которое ты передаешь в качестве параметра превышает int
используй

private:
long god;

вместо
int god;

int имеет диапазон от -35 с чем то тысяч до 35 с чем то, а long на миллиарды счет
Ознакомься с типами данных
И не забывай благодарить тех кто тебе помогает +1 спасибо
1
29 / 29 / 7
Регистрация: 26.03.2010
Сообщений: 305
27.09.2010, 19:24  [ТС]
Спасибо, отблагодарить я успею. Добившись нормально компиляции)))
Все равно обло((
0
Эксперт С++
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
27.09.2010, 19:29
В суровые времена DOS и Borland TurboC , int действительно имел диапазон от -32768 до 32767, ибо занимал 2 байта. Но уже довольно давно он расширен до 4 байтов и имеет тот же диапазон, что и long - плюс-минус 2 миллиарда с копейками. Так что в данном случае и long не поможет, нужно использовать либо вещественные числа, либо 64-разрядное целое.
1
 Аватар для Chainyk
15 / 15 / 2
Регистрация: 24.08.2010
Сообщений: 94
27.09.2010, 20:08
Цитата Сообщение от NikolaWhite Посмотреть сообщение
nt имеет диапазон от -35 с чем то тысяч до 35 с чем то, а long на миллиарды счет
Ознакомься с типами данных
Ето было правдой на процессорах до 386. Уже в 386-м int имел 32 розряда. В большынстве компиляторов long тоже 4 байта. Используй float или double
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.09.2010, 20:08
Помогаю со студенческими работами здесь

Расположение определения функций в заголовочных файлах
grizlik78, Часто вижу что приватную секцию указывают внизу, интересно, зачем? Вроде удобнее расположить приватные члены класса в самом...

Ошибка: WndProc: недопустимые локальные определения функций
где нужна скобка? как исправить ошибки? #include &lt;windows.h&gt; #include &lt;math.h&gt; LPSTR szWindowClass = &quot;Мое окно&quot;; ...

Недопустимые локальные значения функции. Как исправить?
#include &quot;stdafx.h&quot; #include&lt;stdio.h&gt; #include &lt;cstdlib&gt;//система пауза// #include &lt;locale.h&gt; #include &lt;math.h&gt; using namespace...

Исправить ошибки:недопустимые локальные значения функции
#include &lt;iostream&gt; #include &lt;cstdlib&gt; // Для работы с функцией system()int(str) #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include...

Перегрузка функций, шаблоны функций Функция определения объемов: шара по его радиусу
Перегрузка функций, шаблоны функций Функция определения объемов: шара по его радиусу (V=4/3пиR2), конуса по радиусу основания и высоте...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru