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

Include gurad - C++

Восстановить пароль Регистрация
 
PlayerDark
0 / 0 / 0
Регистрация: 02.12.2009
Сообщений: 62
26.06.2010, 18:10     Include gurad #1
В моей программе, при попытке использования сабжа, происходит ошибка. Для проверки я составил следующий код.

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
//hd1.h
#ifndef hd1
#define hd1
 
#include "hd2.h"
 
class hd1 {
public:
    hd2 getHd2() {
        return hd2();
    };
};
 
#endif
 
//hd2.h
#ifndef hd2
#define hd2
 
class hd2 {
public:
    int member;
};
 
#endif
 
//main.cpp
//#include "hd2.h"
#include "hd1.h"
int main() {
    hd1 hd;
    hd.getHd2();
    return 0;
};
это не работает. Сижу под Visual C++ Express 2008
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2010, 18:10     Include gurad
Посмотрите здесь:

C++ INCLUDE
ошибка в лабе не находит #include<iomanip.h> #include<conio.h> C++
C++ #include в C++
C++ #include
C++ Какая разница между #include<> и #include""?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
26.06.2010, 19:05     Include gurad #2
Должно работать, что тут скажешь... Конечно, надо было привести текст ошибки и всё такое...
PlayerDark
0 / 0 / 0
Регистрация: 02.12.2009
Сообщений: 62
26.06.2010, 19:10  [ТС]     Include gurad #3
1>c:\documents and settings\admin.microsof-fcc3b0\мои документы\visual studio 2008\projects\brainzout\brainzout\hd2.h(8) : warning C4094: untagged 'class' declared no symbols
1>c:\documents and settings\admin.microsof-fcc3b0\мои документы\visual studio 2008\projects\brainzout\brainzout\hd1.h(9) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\documents and settings\admin.microsof-fcc3b0\мои документы\visual studio 2008\projects\brainzout\brainzout\hd1.h(11) : warning C4183: 'getHd2': missing return type; assumed to be a member function returning 'int'
1>c:\documents and settings\admin.microsof-fcc3b0\мои документы\visual studio 2008\projects\brainzout\brainzout\hd1.h(12) : warning C4094: untagged 'class' declared no symbols
1>c:\documents and settings\admin.microsof-fcc3b0\мои документы\visual studio 2008\projects\brainzout\brainzout\hd1.h(10) : error C2059: syntax error : ')'
1>c:\documents and settings\admin.microsof-fcc3b0\мои документы\visual studio 2008\projects\brainzout\brainzout\main.cpp(4) : error C2065: 'hd' : undeclared identifier
1>c:\documents and settings\admin.microsof-fcc3b0\мои документы\visual studio 2008\projects\brainzout\brainzout\main.cpp(5) : error C2065: 'hd' : undeclared identifier
1>c:\documents and settings\admin.microsof-fcc3b0\мои документы\visual studio 2008\projects\brainzout\brainzout\main.cpp(5) : error C2228: left of '.getHd2' must have class/struct/union
1> type is ''unknown-type''
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
26.06.2010, 19:41     Include gurad #4
Ну вот теперь другое дело. У тебя имена include guard'ов совпадают с именами класса. То есть, эти имена в тексте после обработки препроцессором просто-напросто исчезают. Называй гарды как-нибудь вроде HD2_H или HD2_HEADER.
Yandex
Объявления
26.06.2010, 19:41     Include gurad
Ответ Создать тему
Опции темы

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