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

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

Войти
Регистрация
Восстановить пароль
 
rus_phantom
6 / 6 / 1
Регистрация: 31.03.2011
Сообщений: 69
#1

Загрузить header один раз - C++

14.12.2012, 21:31. Просмотров 300. Ответов 4
Метки нет (Все метки)

Есть .h файл с функциями который загружается в различных .cpp

Вот содержимое .h файла
C++
1
2
3
4
5
6
7
8
9
#pragma once
#ifndef DEBUG_H_H
#define DEBUG_H_H
 
void test(){}
 
#else
    void test2() {}
#endif /* _P_DEBUG_H_ */
Однако не смотря ни на что, компилятор дважды компилирует функцию test. Почему?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2012, 21:31     Загрузить header один раз
Посмотрите здесь:

C++ Элементы массива, которые встречаются только один раз
C++ Цикл выполняется только один раз.
вывод повторяющегося элемента один раз! C++
Строки в С++ - вывести слова, которые встречаются один раз C++
Ввод массива char за один раз в одну строчку C++
C++ istringstream должен работать всего один раз?
C++ Цикл выполняется один раз
C++ Как определить переменную только один раз?
Один раз, - нет! Второй, - да! C++
Как в цикле можно выполнить действие один раз? C++
Чтобы вывело один раз надпись C++
C++ Как сделать что бы число зарандомилось один раз

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yekka
385 / 149 / 8
Регистрация: 12.05.2011
Сообщений: 450
14.12.2012, 21:35     Загрузить header один раз #2
Цитата Сообщение от rus_phantom Посмотреть сообщение
компилятор дважды компилирует функцию test
откуда такой вывод?
rus_phantom
6 / 6 / 1
Регистрация: 31.03.2011
Сообщений: 69
14.12.2012, 21:36  [ТС]     Загрузить header один раз #3
C
1
2
3
4
5
C:\ndk-2.1.0-workspace\test_display\Simulator-Debug/..\src\UI\/../p_debug.h:12: multiple definition of `test()'
src\main.o:C:\ndk-2.1.0-workspace\test_display\Simulator-Debug/..\src\/UI/../p_debug.h:12: first defined here
src\MainWindow.o: In function `test()':
C:\ndk-2.1.0-workspace\test_display\Simulator-Debug/..\src\/p_debug.h:12: multiple definition of `test()'
src\main.o:C:\ndk-2.1.0-workspace\test_display\Simulator-Debug/..\src\/UI/../p_debug.h:12: first defined here
yekka
385 / 149 / 8
Регистрация: 12.05.2011
Сообщений: 450
14.12.2012, 21:37     Загрузить header один раз #4
должно быть
C++
1
inline void test(){}
или
C++
1
void test();
я уж не знаю, какой из этих случаев вы имели в виду
rus_phantom
6 / 6 / 1
Регистрация: 31.03.2011
Сообщений: 69
14.12.2012, 21:44  [ТС]     Загрузить header один раз #5
Хм. Не знал что в .h файле нельзя писать функции. Все заработал когда я вывел реализацию функций в .cpp файл. Спасибо
Yandex
Объявления
14.12.2012, 21:44     Загрузить header один раз
Ответ Создать тему
Опции темы

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