Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.95/19: Рейтинг темы: голосов - 19, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 16
1

Ошибки с инклюдами....

24.04.2010, 20:46. Просмотров 3701. Ответов 19
Метки нет (Все метки)

заранее спасибо всем откликнувшимся ....

у меня компилятор ругается ...
3 ошибки

1> main.cpp
1>c:\documents and settings\саша\мои документы\visual studio 2010\projects\laba 1\laba 1\function.cpp(4): fatal error C1014: too many include files : depth = 1024
1> function.cpp
1>c:\documents and settings\саша\мои документы\visual studio 2010\projects\laba 1\laba 1\function.cpp(4): fatal error C1014: too many include files : depth = 1024
1> class.cpp
1>c:\documents and settings\саша\мои документы\visual studio 2010\projects\laba 1\laba 1\class.cpp(2): fatal error C1014: too many include files : depth = 1024

main.cpp
C++
1
2
3
4
5
6
7
8
9
#include "class.cpp"
 
void main()
{
    cout<<"hello world";
    double ftmin;
    cin>>ftmin;
    input_tmin(ftmin); // вообще надо так инициализацию проводить ?
}
class.cpp
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
#include "function.cpp"
using namespace std;
 
struct gabarit
{
    double dlina;
    double shirina;
    double visota;
};
class laba
{
public: 
    gabarit razmer;
    double tmin;
    double tmax;
    //char *name; 
    laba();
    //laba(char nick, double fdlina, double fshirina, double fvisota, double ftmin, double ftmax);
 
//  void input_name(char nick);
    //char output_name();
    
    void input_dlina(double fdlina);
    double output_dlina();
 
    void input_shirina(double fshirina);
    double output_shirina();
 
    void input_visota(double fvisota);
    double output_visota();
 
    void input_tmin(double ftmin);
    double output_tmin();
 
    void input_tmax(double ftmax);
    double output_tmax();
}

function.cpp
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
#include <iostream>
#include <string.h>
 
#include "class.cpp"
 
using namespace std;
 
    laba::laba()
    {
    }
    /*void laba::input_name(char nick)
    {
        stricmp(nick,name);
    }
    char laba::output_name()
    {
        return name;
    }*/
    
    void laba::input_dlina(double fdlina)
    {
        razmer.dlina=fdlina;
    }
    double laba::output_dlina()
    {
        return razmer.dlina;
    }
 
    void laba::input_shirina(double fshirina)
    {
        razmer.shirina=fshirina;
    }
    double laba::output_shirina()
    {
        return razmer.shirina;
    }
 
    void laba::input_visota(double fvisota)
    {
        razmer.visota=fvisota;
    }
    double laba::output_visota()
    {
        return razmer.visota;
    }
 
    void laba::input_tmin(double ftmin)
    {
        tmin=ftmin;
    }
    double laba::output_tmin()
    {
        return tmin;
    }
 
    void laba::input_tmax(double ftmax)
    {
        tmax=ftmax;
    }
    double laba::output_tmax()
    {
        return tmax;
    }





и ещё такой вопрос.... как правильно реализовать ....

C++
1
2
3
4
5
6
7
8
    /*void laba::input_name(char nick)
    {
        stricmp(nick,name);
    }
    char laba::output_name()
    {
        return name;
    }*/

Заранее всем спасибо =)

и как правильно инициализировать объекты класса ?)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.04.2010, 20:46
Ответы с готовыми решениями:

#include <list> - конфликт using namespace std с другими инклюдами
Всем привет. Появилась надобность использовать списки, однако #include &lt;list&gt; подключается только...

Найти ошибки в данной программе (известно что есть только 2 ошибки)
У меня в модуле с програмирования задание: Найти ошибки в данной программе (известно что есть...

Компьютер был перезагружен после критической ошибки. Код ошибки: 0x0000000a
Компьютер был перезагружен после критической ошибки. Код ошибки: 0x0000000a (0x0000000000000048,...

Ошибки после компиляции на Visual Express 2012.Ошибки в теме
Добрый вечер ребят помогите пожалуйста.Программа написана на Visual Express 2012.Обясните что...

19
Эксперт JavaЭксперт С++
8360 / 3581 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
24.04.2010, 20:57 2
из class.cpp удалите
C++
1
#include "function.cpp"
из function.cpp удалите #include <iostream>
в файл main.cpp добавьте
C++
1
#include <iostream>
1
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 16
24.04.2010, 21:04  [ТС] 3
извиняюсь конечно...
но разве не так...

Допустим у нас есть 4 файла...

2
/
1-
\
3 - 4

в 1ом... Мы открываем 2-ой и 3-ий...
в 3ем... Мы открываем 4-ый...
а в 4-ом Инклюд Иострим...

разве иострим не будет работать в первом ?
там же как бы по дереву вроде.... (или я что-то не то несу ?)
0
Эксперт JavaЭксперт С++
8360 / 3581 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
24.04.2010, 21:10 4
RUvik, для начала в class.cpp вы подключили function.cpp, в котором подключили class.cpp. Вам не кажется это бесконечным циклом?
Я думаю, что стоит подключать библиотеки в тех файлах, в которых они необходимы, а не рассчитывать на велосипед из других файлов
1
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 16
24.04.2010, 21:22  [ТС] 5
Извините... вы правы =)

Добавлено через 8 минут
1> main.cpp
1>c:\documents and settings\саша\мои документы\visual studio 2010\projects\laba 1\laba 1\class.cpp(4): error C2011: 'gabarit' : 'struct' type redefinition
1> c:\documents and settings\саша\мои документы\visual studio 2010\projects\laba 1\laba 1\class.cpp(4) : see declaration of 'gabarit'
1> function.cpp
1>c:\documents and settings\саша\мои документы\visual studio 2010\projects\laba 1\laba 1\function.cpp(26): error C2628: 'laba' followed by 'void' is illegal (did you forget a ';'?)
1>c:\documents and settings\саша\мои документы\visual studio 2010\projects\laba 1\laba 1\function.cpp(27): error C2556: 'laba laba::input_dlina(double)' : overloaded function differs only by return type from 'void laba::input_dlina(double)'
1> c:\documents and settings\саша\мои документы\visual studio 2010\projects\laba 1\laba 1\class.cpp(22) : see declaration of 'laba::input_dlina'
1>c:\documents and settings\саша\мои документы\visual studio 2010\projects\laba 1\laba 1\function.cpp(27): error C2371: 'laba::input_dlina' : redefinition; different basic types
1> c:\documents and settings\саша\мои документы\visual studio 2010\projects\laba 1\laba 1\class.cpp(22) : see declaration of 'laba::input_dlina'
1> class.cpp
1>c:\documents and settings\саша\мои документы\visual studio 2010\projects\laba 1\laba 1\class.cpp(37): fatal error C1004: unexpected end-of-file found

эмм.... никак не могу разобраться с Еррорами.... =(
0
Эксперт JavaЭксперт С++
8360 / 3581 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
24.04.2010, 21:27 6
В файле class.cpp поставьте после последней скобки класса } точку с запятой
1
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 16
24.04.2010, 21:34  [ТС] 7
спасибо.... только у меня теперь под 50 ошибок =(((
и все похожего типа...
error C2027: use of undefined type 'laba'

на этой строчке

C++
1
2
3
4
double laba::output_tmax()
    {
        return laba::tmax;  // тут ошибка
    }
как бороться с ошибками такого рода ?
может сделать объекты класса статическими ?
0
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
24.04.2010, 21:53 8
return tmax;
0
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 16
24.04.2010, 22:11  [ТС] 9
тоже ругается...
думал если укажу класс.... успокоится.....
0
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
24.04.2010, 22:17 10
Цитата Сообщение от RUvik Посмотреть сообщение
тоже ругается...
что значит "тоже", что пишет?
0
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 16
24.04.2010, 22:46  [ТС] 11
error C2065: 'tmax' : undeclared identifier
0
Эксперт JavaЭксперт С++
8360 / 3581 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
24.04.2010, 22:48 12
RUvik, перепишите заново имя переменной tmax в классе и в методах. Скорее всего где-то была введена кириллическая буква 'а' вместо латинской
0
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 16
24.04.2010, 22:57  [ТС] 13
тогда почему когда я навожу на tmax , мне выдает что double laba::tmax

(сижу через VS 2010 Ultimate)
0
Эксперт JavaЭксперт С++
8360 / 3581 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
24.04.2010, 23:46 14
RUvik, сложно сказать что у вас там происходит со студией, поставьте лучше стабильную версию, например 2008, но у меня все работает http://codepad.org/c2SFWbXa
1
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 16
25.04.2010, 09:42  [ТС] 15
спасибо... в одном файле всё работает....
как только на несколько Срр файлов разбиваю.... сразу летит =(((


кстати, извиняюсь.... но у меня такой вопрос... нигде найти не могу..........

допустим у нас есть
int a;
cin>>a;
(вводим не число, а символы....)
после чего летит программа.....

как с таким счастьем бороться ?
0
23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
25.04.2010, 11:43 16
RUvik, смотрите , если вы хотите разбивать прогу на фаилы, то делать это лучше так(ну я так делаю)
берёте один фаил-хеадер с расширением .h в него пишите все портотипы функций, классы, структуры итд.
допустим у вас есть main.cpp и core.cpp вы хотите их соединить .
Создаёте фаил funclist.h
В него записываете все портотипы функций из фаилов (из main.ccp и из core.cpp) , кроме мэина конечно
потом в обоих фаилах напишите
C++
1
#include "funclist.h"
и всё. Получиться, что у вас два сипп фаила работают друг с другом через .h фаил.

Добавлено через 4 минуты
это будет функлист в вашем случае
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
struct gabarit
{
        double dlina;
        double shirina;
        double visota;
};
class laba
{
public: 
        gabarit razmer;
        double tmin;
        double tmax;
        //char *name; 
        laba();
        //laba(char nick, double fdlina, double fshirina, double fvisota, double ftmin, double ftmax);
 
//      void input_name(char nick);
        //char output_name();
        
        void input_dlina(double fdlina);
        double output_dlina();
 
        void input_shirina(double fshirina);
        double output_shirina();
 
        void input_visota(double fvisota);
        double output_visota();
 
        void input_tmin(double ftmin);
        double output_tmin();
 
        void input_tmax(double ftmax);
        double output_tmax();
};
Функшн сипп
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
#include <iostream>
#include <string.h>
 
#include "funclist.h"
 
using namespace std;
 
        laba::laba()
        {
        }
        /*void laba::input_name(char nick)
        {
                stricmp(nick,name);
        }
        char laba::output_name()
        {
                return name;
        }*/
        
        void laba::input_dlina(double fdlina)
        {
                razmer.dlina=fdlina;
        }
        double laba::output_dlina()
        {
                return razmer.dlina;
        }
 
        void laba::input_shirina(double fshirina)
        {
                razmer.shirina=fshirina;
        }
        double laba::output_shirina()
        {
                return razmer.shirina;
        }
 
        void laba::input_visota(double fvisota)
        {
                razmer.visota=fvisota;
        }
        double laba::output_visota()
        {
                return razmer.visota;
        }
 
        void laba::input_tmin(double ftmin)
        {
                tmin=ftmin;
        }
        double laba::output_tmin()
        {
                return tmin;
        }
 
        void laba::input_tmax(double ftmax)
        {
                tmax=ftmax;
        }
        double laba::output_tmax()
        {
                return tmax;
        }

main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
#include "funclist.h"
#include <iostream>
using namespace std;
 
void main()
{
        cout<<"hello world";
        double ftmin;
        cin>>ftmin;
        input_tmin(ftmin); // вообще надо так инициализацию проводить ?
}
0
-1 / 9 / 2
Регистрация: 22.01.2010
Сообщений: 67
25.04.2010, 13:55 17
Цитата Сообщение от RUvik Посмотреть сообщение
int a;
cin>>a;
(вводим не число, а символы....)
после чего летит программа.....
Замени int на char, char может содержать как и символы и целые числа. Летит потому что вместо буквы цифра попадается по кодировке. скорей так.
1
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 16
25.04.2010, 16:44  [ТС] 18
с char нельзя делать арифметические операции....
однако ведь можно записывать ввод в чар... потом проверять его .... и если всё норм преобразовывать его в число ?
0
Эксперт JavaЭксперт С++
8360 / 3581 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
25.04.2010, 20:25 19
Цитата Сообщение от RUvik Посмотреть сообщение
с char нельзя делать арифметические операции...
Вас обманули
1
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 16
25.04.2010, 21:39  [ТС] 20
Цитата Сообщение от M128K145 Посмотреть сообщение
Вас обманули
ппц... везде обман )))))))))

кстати, вопрос... Лафоре
ООП в С++ 4-ое издание...

норм книжка?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2010, 21:39

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Inet Explorer при обнаружении ошибки вместо описания ошибки выдает иероглифы
Начал изучение ASP. Inet Explorer при обнаружении ошибки вместо описания ошибки выдает иероглифы......

Windows XP на HP compaqt 6220 ошибки при установке, как убить эти ошибки
Всех приветствую уважаемые Комрады ,форумчане не проходите мимо помогите откликнитесь мучаюсь уже...

Найти ошибки в коде и исправить эти ошибки (Наследование)
Вот в общем 3 файла, изучаю наследование на примере односвязного и двусвязного списков: list.h...

При повторном появлении ошибки обработка ошибки не срабатывает
Логика: - Пользователь. Нажимает кнопку; - Код . Создаёт &quot;Recordset&quot; &quot;rstStud&quot;(студенты) и...

с2079 и с2228 ошибки при компиляции ниже участок кода, с которым праблема и скрины ошибки
// ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ bool game = true; // КЛАССЫ class Me; class mob { public: void...

Не удалось инициализировать SAM из-за следующей ошибки: Присоединенное к системе устройство не работает. Состояние ошибки: 0xc0000001
Добрый день форумчане. На работе одна женщина после месяца отпуска напрочь забыла пароль от своей...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

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