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

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

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

Author24 — интернет-сервис помощи студентам
Приветствую Вас форумчане! У меня вопрос и он опять связан с подключением заголовочного файла в старом формате, а может и не только. Думал, может опечатка, как это было не раз в предыдущих главах книги Джесса Либерти. Пытался менять расширения, не помогает, попробовал совсем убрать и вставить строку<using namespace std;> ,все равно ошибка. Посоветуйте, может в настройках компилятора, что то поковырять или добавить что- либо в написании, а может просто книжку сменить на более актуальную. С уважением!
Миниатюры
Использование подставляемых функций и включение файла заголовка.   Использование подставляемых функций и включение файла заголовка.  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.01.2012, 08:23
Ответы с готовыми решениями:

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

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

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

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

16
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
09.01.2012, 08:40 2
пока что главная ошибка в том, что не находится файл cat.hpp:
error: cat.hpp: no such file or directory.
Он точно с таким именем? Он лежит в правильном месте? IDE его видит?
+ на скрине видно, что файл main.cpp не сохранен. IDE сохраняет изменения в файле перед компиляцией?
1
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.01.2012, 08:46 3
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
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
09.01.2012, 09:23 4
Цитата Сообщение от soon Посмотреть сообщение
g++ foo.hpp foo.cpp main.cpp
Хэдэр не надо, он же все равно инлайнится в файл реализации препроцессором.
1
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
09.01.2012, 15:48  [ТС] 5
У меня среда 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
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.01.2012, 16:05 6
Цитата Сообщение от 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  [ТС] 7
Как я это понимаю, файлы с расширением .h, .hp и .hpp относятся к подключаемым файлам. С помощи строки пространства имен (как вы мне посоветовали) я опускал расширение <header >, но в этой ситуации это не помогает .Может компилятор с ними не работает или надо что то в настройках настроить.
0
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.01.2012, 17:59 8
Цитата Сообщение от 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  [ТС] 9
А как же этот файл передать компилятору. А если .h нет в каталоге, как его туда внести
0
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.01.2012, 18:23 10
Цитата Сообщение от coreshok Посмотреть сообщение
А как же этот файл передать компилятору
Он будет включен перепроцессором. Никак foo.hpp не надо передавать.
Просто поместите эти 2 файла в одну папку на жестком диске(да не важно, можно хоть куда, но в одну папку). Откройте main.cpp в своей среде и скомпилируйте его. Больше ничего не требуется.
0
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
09.01.2012, 19:15  [ТС] 11
А как поместить в foo.hpp?
0
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.01.2012, 19:21 12
Цитата Сообщение от coreshok Посмотреть сообщение
А как поместить в foo.hpp?
Что поместить, код?
Вариантов масса. Начиная от помещения в файл через консоль и блокнот, заканчивая print screen -> распознаватель текста -> сохранение в текстовый формат -> сохранение в foo.hpp.

А если серьезно - абсолютно без разницы.
1
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
09.01.2012, 21:29  [ТС] 13
Я конечно дико извиняюсь...Все сделал как вы велели.Коды сохранил в файлах,файлы в папке,папку на жестком, только осталось винчестер поместить в яйцо,а яйцо в ларец, а ларец на тот дуб (понятно какой).Пардон, шутка юмора!Все равно не получается.
0
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
09.01.2012, 21:38  [ТС] 14
Вот скрины.
Миниатюры
Использование подставляемых функций и включение файла заголовка.   Использование подставляемых функций и включение файла заголовка.  
0
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.01.2012, 21:40 15
А почему в 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  [ТС] 16
Уважаемый soon!Благодарю за внимание проявленное ко мне, но все равно что-то не так.Я думаю пока закрыть эту тему и вернуться к ней после того как по упражняюсь без подключения .h,.hp и.hpp фалов.С уважением!
Миниатюры
Использование подставляемых функций и включение файла заголовка.   Использование подставляемых функций и включение файла заголовка.  
0
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 11
17.02.2014, 00:03 17
Тоже застрял на этом уроке =\ Сохранил 2 файла в одной папке открыл их в одном каталоге ввел как описывалось #include "Cat" и не работает почему ????
0
17.02.2014, 00:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.02.2014, 00:03
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru