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

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

09.01.2012, 08:23. Показов 2372. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru