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

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

Войти
Регистрация
Восстановить пароль
 
PlayerDark
0 / 0 / 0
Регистрация: 02.12.2009
Сообщений: 62
#1

Include gurad - C++

26.06.2010, 18:10. Просмотров 404. Ответов 3
Метки нет (Все метки)

В моей программе, при попытке использования сабжа, происходит ошибка. Для проверки я составил следующий код.

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
C++ #include в C++
#include <vcl.h> C++
C++ #include <vcl.h>
ошибка с include C++
Инклюиды - include C++
C++ #include
Деректива include C++
C++ include guard
Include C++
Проблемы с include C++
C++ Директива include

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1599 / 991 / 117
Регистрация: 27.09.2009
Сообщений: 1,910
Завершенные тесты: 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
Эксперт С++
1599 / 991 / 117
Регистрация: 27.09.2009
Сообщений: 1,910
Завершенные тесты: 1
26.06.2010, 19:41     Include gurad #4
Ну вот теперь другое дело. У тебя имена include guard'ов совпадают с именами класса. То есть, эти имена в тексте после обработки препроцессором просто-напросто исчезают. Называй гарды как-нибудь вроде HD2_H или HD2_HEADER.
Yandex
Объявления
26.06.2010, 19:41     Include gurad
Ответ Создать тему
Опции темы

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