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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.90
RUvik
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 16
24.04.2010, 20:46     Ошибки с инклюдами.... #1
заранее спасибо всем откликнувшимся ....

у меня компилятор ругается ...
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;
    }*/

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

и как правильно инициализировать объекты класса ?)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2010, 20:46     Ошибки с инклюдами....
Посмотрите здесь:

ошибки C++
C++ ошибки
C++ #include <list> - конфликт using namespace std с другими инклюдами
C++ Ошибки
C++ Ошибки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
24.04.2010, 20:57     Ошибки с инклюдами.... #2
из class.cpp удалите
C++
1
#include "function.cpp"
из function.cpp удалите #include <iostream>
в файл main.cpp добавьте
C++
1
#include <iostream>
RUvik
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 16
24.04.2010, 21:04  [ТС]     Ошибки с инклюдами.... #3
извиняюсь конечно...
но разве не так...

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

2
/
1-
\
3 - 4

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

разве иострим не будет работать в первом ?
там же как бы по дереву вроде.... (или я что-то не то несу ?)
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
24.04.2010, 21:10     Ошибки с инклюдами.... #4
RUvik, для начала в class.cpp вы подключили function.cpp, в котором подключили class.cpp. Вам не кажется это бесконечным циклом?
Я думаю, что стоит подключать библиотеки в тех файлах, в которых они необходимы, а не рассчитывать на велосипед из других файлов
RUvik
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

эмм.... никак не могу разобраться с Еррорами.... =(
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
24.04.2010, 21:27     Ошибки с инклюдами.... #6
В файле class.cpp поставьте после последней скобки класса } точку с запятой
RUvik
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;  // тут ошибка
    }
как бороться с ошибками такого рода ?
может сделать объекты класса статическими ?
Roma_F
331 / 246 / 5
Регистрация: 13.12.2009
Сообщений: 589
24.04.2010, 21:53     Ошибки с инклюдами.... #8
return tmax;
RUvik
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 16
24.04.2010, 22:11  [ТС]     Ошибки с инклюдами.... #9
тоже ругается...
думал если укажу класс.... успокоится.....
Roma_F
331 / 246 / 5
Регистрация: 13.12.2009
Сообщений: 589
24.04.2010, 22:17     Ошибки с инклюдами.... #10
Цитата Сообщение от RUvik Посмотреть сообщение
тоже ругается...
что значит "тоже", что пишет?
RUvik
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 16
24.04.2010, 22:46  [ТС]     Ошибки с инклюдами.... #11
error C2065: 'tmax' : undeclared identifier
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
24.04.2010, 22:48     Ошибки с инклюдами.... #12
RUvik, перепишите заново имя переменной tmax в классе и в методах. Скорее всего где-то была введена кириллическая буква 'а' вместо латинской
RUvik
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 16
24.04.2010, 22:57  [ТС]     Ошибки с инклюдами.... #13
тогда почему когда я навожу на tmax , мне выдает что double laba::tmax

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


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

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

как с таким счастьем бороться ?
GAME
 Аватар для GAME
22 / 22 / 3
Регистрация: 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); // вообще надо так инициализацию проводить ?
}
Abortmaher007
 Аватар для Abortmaher007
9 / 9 / 0
Регистрация: 22.01.2010
Сообщений: 67
25.04.2010, 13:55     Ошибки с инклюдами.... #17
Цитата Сообщение от RUvik Посмотреть сообщение
int a;
cin>>a;
(вводим не число, а символы....)
после чего летит программа.....
Замени int на char, char может содержать как и символы и целые числа. Летит потому что вместо буквы цифра попадается по кодировке. скорей так.
RUvik
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 16
25.04.2010, 16:44  [ТС]     Ошибки с инклюдами.... #18
с char нельзя делать арифметические операции....
однако ведь можно записывать ввод в чар... потом проверять его .... и если всё норм преобразовывать его в число ?
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
25.04.2010, 20:25     Ошибки с инклюдами.... #19
Цитата Сообщение от RUvik Посмотреть сообщение
с char нельзя делать арифметические операции...
Вас обманули
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2010, 21:39     Ошибки с инклюдами....
Еще ссылки по теме:

Ошибки VS C++
ошибки C++
Ошибки C++

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

Или воспользуйтесь поиском по форуму:
RUvik
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 16
25.04.2010, 21:39  [ТС]     Ошибки с инклюдами.... #20
Цитата Сообщение от M128K145 Посмотреть сообщение
Вас обманули
ппц... везде обман )))))))))

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

норм книжка?
Yandex
Объявления
25.04.2010, 21:39     Ошибки с инклюдами....
Ответ Создать тему
Опции темы

Текущее время: 17:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru