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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.96
bobromet
24 / 24 / 1
Регистрация: 06.03.2010
Сообщений: 59
#1

Стражи включения - C++

31.08.2010, 17:23. Просмотров 3311. Ответов 6
Метки нет (Все метки)

Что значат эти строчки,

C++
1
2
3
4
#ifndef _CIRCL_H
#define _CIRCL_H
 
#endif  /* _CIRCL_H */
понял так:
C++
1
2
3
4
если не дефинирована _CIRCL_H
тогда дефинировать   _CIRCL_H
 
выходим/конец    _CIRCL_H
а зачем все это, в чем прикол?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2010, 17:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Стражи включения (C++):

Класс с использованием включения - C++
Помогите пожалуйста разобрать почему программа зависает на последней строке more.show(); Я уже устал тыкать "пальцем в небо" когда во...

Вопрос включения в класс - C++
Люди, помогите с такой вот задачей, есть 2 класса у одного из них подклассы. Как эти подклассы прикрутить(включить) в первый класс... ...

Сортировка прямого включения - C++
Не переставляется первый элемент массива, как исправить? void Insertion(int *mas, int *n) { for (int i = 0; i < n+1; ++i) { ...

Страж включения - это... ? - C++
Всем доброго времени суток. Меня заинтересовал такой вот вопрос - Что такое "Страж включения", для чего используется, и "с чем его едят" ?...

Сортировка методом прямого включения - C++
Даны n целых положительных двузначных чисел. Трактуя каждое число как пару цифр из интервала 0–9, отсортировать их (цифры) по возрастанию. ...

Защита от повторного включения файла - C++
Всем приятного дня ! Файл sada.hpp пытаюсь подключить несколько раз. сам файл sada.hpp реализован так #ifndef DEBUG ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
31.08.2010, 17:25 #2
bobromet, Защита от включения заголовочного файла более одного раза. Запомните это. Пригодится. Альтернатива:
C++
1
#pragma(once)
Некропостинг - нехорошо
bobromet
24 / 24 / 1
Регистрация: 06.03.2010
Сообщений: 59
31.08.2010, 17:29  [ТС] #3
а как я могу его более одного раза включить и почему это плохо?
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
31.08.2010, 17:31 #4
bobromet, Плохо - это по определению. Ошибка компиляции. А два раза...
Ну например так - будет ошибка компиляции. А если раскоментить страж, то все будет ок.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//file.h
//страж тут 
//#ifndef _FILE_H_ 
//#define _FILE_H_
//some code
//#endif
 
//file.cpp
#include "file.h"
//some code
 
//main.cpp
#include "file.h"
//some code
bobromet
24 / 24 / 1
Регистрация: 06.03.2010
Сообщений: 59
31.08.2010, 17:39  [ТС] #5
Хм как то не очень понятно. Я ведь хидер так и так должен каждый раз подключать и в main.cpp и в file.cpp.. что то запутался
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
31.08.2010, 17:40 #6
bobromet, один и тот же header может включатся в другие хедеры итд


C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//1.h
#include "2.h"
#include "3.h"
#include "4.h"
................
 
//2.h
#include "3.h"
................
 
//main.cpp
#include "1.h"
 
int main( int argc,char** argv ){
...
}
main.cpp превратится в
#include "3.h" (полный текст 3.h)
.....................
#include "3.h" (полный текст 3.h)
#include "4.h" (полный текст 4.h)
.....................
int main( int,char** ){
...
}

то что было в 3.h включится два раза
если у вас стоят дефайны, то при включение внутри 2.h файла 3.h он не включится, тк для main.cpp define _3_H будет определен после включения внутри 1.h
bobromet
24 / 24 / 1
Регистрация: 06.03.2010
Сообщений: 59
31.08.2010, 17:42  [ТС] #7
alex_x_x, Lavroff ясность полная, спасибо .)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.08.2010, 17:42
Привет! Вот еще темы с ответами:

Отключения/включения alt+enter - C++
Привет, как программно отключить и включить виндовской хот-кей alt+enter ?

Сортировка массива методом включения - C++
Задание : сортировки массива методом включения. Размер массива 7. Направление сортировки по возрастанию. Массив вроде бы написал а...

Операции объединения, пересечения, включения множеств - C++
Помогите, пожалуйста, написать программу на с++, реализующую операции объединения, пересечения, включения множеств Дошел только до...

Вместо включения используйте закрытое наследование - C++
Здравствуйте. Изучаю С++ по книге Прата С. "Язык программирования С++. Лекции и упражнения". Столкнулся с проблемой. Есть задание:...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
31.08.2010, 17:42
Ответ Создать тему
Опции темы

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