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

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

Восстановить пароль Регистрация
 
rus_phantom
6 / 6 / 1
Регистрация: 31.03.2011
Сообщений: 69
14.12.2012, 21:31     Загрузить header один раз #1
Есть .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. Почему?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yekka
384 / 148 / 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
384 / 148 / 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 один раз
Ответ Создать тему
Опции темы

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