Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55

Использование подставляемых функций и включение файла заголовка.

09.01.2012, 08:23. Показов 2395. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую Вас форумчане! У меня вопрос и он опять связан с подключением заголовочного файла в старом формате, а может и не только. Думал, может опечатка, как это было не раз в предыдущих главах книги Джесса Либерти. Пытался менять расширения, не помогает, попробовал совсем убрать и вставить строку<using namespace std;> ,все равно ошибка. Посоветуйте, может в настройках компилятора, что то поковырять или добавить что- либо в написании, а может просто книжку сменить на более актуальную. С уважением!
Миниатюры
Использование подставляемых функций и включение файла заголовка.   Использование подставляемых функций и включение файла заголовка.  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.01.2012, 08:23
Ответы с готовыми решениями:

Включение заголовка, содержащего безымянный namespace
Если включить хедер (.h файл), содержащий безымянный namespace с определением переменной, для конкретики, пусть будет int a{}; ...

Использование функций из файла
Добрый день Если у нас дано кнопку, мы привязываем событие при помощи command=button_clicked. А как привязать к этой же кнопке если...

Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов
Здравствуйте!!! Я бы хотел попросить помоч решить...ну или скинуть примеры таких задач, если вдруг у вас они завалялись на компе или...

16
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
09.01.2012, 08:40
пока что главная ошибка в том, что не находится файл cat.hpp:
error: cat.hpp: no such file or directory.
Он точно с таким именем? Он лежит в правильном месте? IDE его видит?
+ на скрине видно, что файл main.cpp не сохранен. IDE сохраняет изменения в файле перед компиляцией?
1
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.01.2012, 08:46
coreshok, Если позволяет ваша среда - создайте проект.
Если без проекта, то можно делать так
code
C++
1
2
3
4
5
6
7
8
9
10
11
12
#ifndef FOO_H
#define FOO_H
 
class Foo
{
    int a;
    
public:
    Foo(int);
};
 
#endif //FOO_H
C++
1
2
3
4
5
6
7
#include "foo.hpp"
#include <iostream>
 
Foo::Foo(int _a): a(_a)
{
    std::cout << a << std::endl;
}
C++
1
2
3
4
5
6
7
8
#include <iostream>
#include "foo.hpp"
 
int main()
{
    Foo f(3);
    return 0;
}
Bash
1
2
3
4
soon@bt:~/src/C++$ g++ foo.hpp foo.cpp main.cpp -o main
soon@bt:~/src/C++$ ./main
3
soon@bt:~/src/C++$
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
09.01.2012, 09:23
Цитата Сообщение от soon Посмотреть сообщение
g++ foo.hpp foo.cpp main.cpp
Хэдэр не надо, он же все равно инлайнится в файл реализации препроцессором.
1
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
09.01.2012, 15:48  [ТС]
У меня среда C::Blocks, я создал новый проект и ввел эту же задачку заново, результат тот же. Не могли бы пояснить что это и для чего простым языком.
soon@bt:~/src/C++$ g++ foo.hpp foo.cpp main.cpp -o main
soon@bt:~/src/C++$ ./main
3
soon@bt:~/src/C++$
Имя файла и все остальное срисовано с книги Д.Л.и я пытаюсь разобрать в ней каждую задачу. Так как же установить это файл или каталог в библиотеку этого компилятора?
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.01.2012, 16:05
Цитата Сообщение от coreshok Посмотреть сообщение
g++ foo.hpp foo.cpp main.cpp -o main
Я просто собрал их в один файл main путем передачи компилятору имен файлов.
Если header находится в одном каталоге, что и компилируемый файл, то проблем не должно возникнуть.
0
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
09.01.2012, 17:41  [ТС]
Как я это понимаю, файлы с расширением .h, .hp и .hpp относятся к подключаемым файлам. С помощи строки пространства имен (как вы мне посоветовали) я опускал расширение <header >, но в этой ситуации это не помогает .Может компилятор с ними не работает или надо что то в настройках настроить.
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.01.2012, 17:59
Цитата Сообщение от coreshok Посмотреть сообщение
С помощи строки пространства имен (как вы мне посоветовали) я опускал расширение <header >
Каким образом?
Вот этот код поместите в foo.hpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef FOO_HPP
#define FOO_HPP
 
#include <iostream>
 
class Foo
{
    int a;
    
public:
    Foo(int);
};
 
Foo::Foo(int _a): a(_a)
{
    std::cout << a << std::endl;
}
 
#endif //FOO_HPP
А этот в main.cpp
C++
1
2
3
4
5
6
7
#include "foo.hpp"
 
int main()
{
    Foo f(4);
    return 0;
}
Они должны находиться в одной папке. Просто откройте main.cpp в своей среде и скомпилируйте его. Он должен собраться без проблем.
0
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
09.01.2012, 18:19  [ТС]
А как же этот файл передать компилятору. А если .h нет в каталоге, как его туда внести
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.01.2012, 18:23
Цитата Сообщение от coreshok Посмотреть сообщение
А как же этот файл передать компилятору
Он будет включен перепроцессором. Никак foo.hpp не надо передавать.
Просто поместите эти 2 файла в одну папку на жестком диске(да не важно, можно хоть куда, но в одну папку). Откройте main.cpp в своей среде и скомпилируйте его. Больше ничего не требуется.
0
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
09.01.2012, 19:15  [ТС]
А как поместить в foo.hpp?
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.01.2012, 19:21
Цитата Сообщение от coreshok Посмотреть сообщение
А как поместить в foo.hpp?
Что поместить, код?
Вариантов масса. Начиная от помещения в файл через консоль и блокнот, заканчивая print screen -> распознаватель текста -> сохранение в текстовый формат -> сохранение в foo.hpp.

А если серьезно - абсолютно без разницы.
1
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
09.01.2012, 21:29  [ТС]
Я конечно дико извиняюсь...Все сделал как вы велели.Коды сохранил в файлах,файлы в папке,папку на жестком, только осталось винчестер поместить в яйцо,а яйцо в ларец, а ларец на тот дуб (понятно какой).Пардон, шутка юмора!Все равно не получается.
0
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
09.01.2012, 21:38  [ТС]
Вот скрины.
Миниатюры
Использование подставляемых функций и включение файла заголовка.   Использование подставляемых функций и включение файла заголовка.  
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.01.2012, 21:40
А почему в foo.hpp ничего нет?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef FOO_HPP
#define FOO_HPP
 
#include <iostream>
 
class Foo
{
    int a;
    
public:
    Foo(int);
};
 
Foo::Foo(int _a): a(_a)
{
    std::cout << a << std::endl;
}
 
#endif //FOO_HPP
0
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
10.01.2012, 19:23  [ТС]
Уважаемый soon!Благодарю за внимание проявленное ко мне, но все равно что-то не так.Я думаю пока закрыть эту тему и вернуться к ней после того как по упражняюсь без подключения .h,.hp и.hpp фалов.С уважением!
Миниатюры
Использование подставляемых функций и включение файла заголовка.   Использование подставляемых функций и включение файла заголовка.  
0
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 11
17.02.2014, 00:03
Тоже застрял на этом уроке =\ Сохранил 2 файла в одной папке открыл их в одном каталоге ввел как описывалось #include "Cat" и не работает почему ????
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.02.2014, 00:03
Помогаю со студенческими работами здесь

Отключение / включение функций
У меня на локалхосте, я так подозреваю, отключена функция flush(). Подскажите кк её включить? Заранее благодарен!

Итерационные циклы,Определение и вызов функций,Использование библиотечных функций stdio.h
Помогите решить задания: 1.Дано натуральное число n. Найти разность между первой цифрой этого числа и суммой всех остальных. ...

Задача на использование функций в качестве параметров других функций
Составить программу по заданному условию. Первая часть условия является заданием на разработку процедуры для любой функции f или (f1,f2)....

Работа с двумерными числовыми массивами. Использование указателей. Использование функций пользователя.
Помогите пожалуйста!!!!!!! Сделать три варианта: первый вариант – передача данных между функциями с помощью глобального...

Использование математических функций и функций работы со строками
Составить процедуру для вычисления и печати значений переменных y и z для заданных значений переменной x, в соответствии с вариантом. ...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru