Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
randy92
7 / 7 / 2
Регистрация: 23.04.2014
Сообщений: 59
#1

#ifndef и #include - C++

01.06.2014, 18:52. Просмотров 371. Ответов 1
Метки нет (Все метки)

Допустим, я создал класс

C++
1
2
3
4
5
6
#ifndef SOMECLASS_H
#define SOMECLASS_H
 
class SomeClass{};
 
#endif
Есть несколько вопросов.
1. Директива #ifndef не воспринимает строку SOMECLASS_H, то есть я могу тут написать someCLASS_H, sameclass_H или вообще ничего не писать? Это нужно лишь для самого программиста?

2. Если я напишу так:
C++
1
2
3
4
5
6
7
#ifndef SOMECLASS_H
#define SOMECLASS_H
#include <iostream>
 
class SomeClass{};
 
#endif
, и включу iostream так же в main, то iostream будет в файле main 2 раза? Как этого избежать и подключать каждую библиотеку 1 раз и на всю программу?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2014, 18:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос #ifndef и #include (C++):

Работа с файлами в C# с исп. библиотек #include <stdio.h> #include <stdlib.h> #include <math.h> #include <io.h> - C++
В типизированном файле записаны названия городов и их численность. Увеличить численность каждого города на 5% (Количество жителей всегда...

#include<iostream>// подключение библиотек #include <conio.h> #include <climits> - C++
помогите для этой программы сделать блок-схему. Пожалуйста #include&lt;iostream&gt;// подключение библиотек #include &lt;conio.h&gt; #include...

Чем отличается #include <cstring>, #include <string> и #include <string.h>? - C++
Доброго времени суток :) Пишу свой класс и мне для нужны функции для работы со строками. Когда подключаю #include &lt;string&gt; все что мне...

Директива #ifndef - C++
Здравствуйте! Есть такой код: #define lastVersion #ifndef lastVersion #include &lt;version1.h&gt; int main() { ClassA A; ...

Объяаление #ifndef STRING_H_ - C++
Вот мы объявляем #include &lt;iostream&gt; #ifndef STRING_H_ #define STRING_H_ Уже не редко встречаю такое включение string.h Просто...

Почему отказались от #ifndef? - C++
Всем привет, Лафоре пишет, что от использовании директивы #ifndef стали отказываться в пользу #if !defined(). Может кто-нибудь объяснить...

1
ValeryS
Модератор
6709 / 5118 / 482
Регистрация: 14.02.2011
Сообщений: 17,214
01.06.2014, 19:02 #2
Цитата Сообщение от randy92 Посмотреть сообщение
1. Директива #ifndef не воспринимает строку SOMECLASS_H, то есть я могу тут написать someCLASS_H, sameclass_H или вообще ничего не писать? Это нужно лишь для самого программиста?
ничего не понял
Цитата Сообщение от randy92 Посмотреть сообщение
и включу iostream так же в main, то iostream будет в файле main 2 раза?
не будет
внутри iostream тоже есть защита

смотрим как она действует
C++
1
2
3
4
5
6
7
8
9
10
#ifndef SOMECLASS_H
// если определен макрос  SOMECLASS_H выбрасываем весь текст до #endif
 
// иначе попадаем сюда
// определяем макрос SOMECLASS_H
#define SOMECLASS_H
//здесь что то 
class SomeClass{};
 
#endif
т.е если несколько включишь свой файл то включится он один раз пока не определен макрос

потом макрос определится и весь текст из файла не будет компилироваться
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2014, 19:02
Привет! Вот еще темы с ответами:

ошибка в лабе не находит #include<iomanip.h> #include<conio.h> - C++
Само задание: Услуги телефонной сети оплачиваются по следующему правилу: за разговоры до A минут в месяц-C руб. а разговоры сверх...

Команды #ifndef #ifdef и #endif - C++
Помогите разобраться с командами #ifndef #endif и #ifndef в книге все как то не понятно объяснено или же лучше если у кого то есть видео на...

Назначение директив препроцессора: #ifndef, #define, #endif - C++
Объясните, что обозначают эти директивы? Заем это использовать в классах? #ifndef myclass #define myclass class someclass { ...

Объясните, в чем суть директив #ifndef/#define/#endif - C++
Не понял в чем суть директив: #ifndef .. #define.. #endifОбъясните пожалуйста..это как - то связано с хедерами, но вот как ??


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

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

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