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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
coreshok
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
09.01.2012, 08:23     Использование подставляемых функций и включение файла заголовка. #1
Приветствую Вас форумчане! У меня вопрос и он опять связан с подключением заголовочного файла в старом формате, а может и не только. Думал, может опечатка, как это было не раз в предыдущих главах книги Джесса Либерти. Пытался менять расширения, не помогает, попробовал совсем убрать и вставить строку<using namespace std;> ,все равно ошибка. Посоветуйте, может в настройках компилятора, что то поковырять или добавить что- либо в написании, а может просто книжку сменить на более актуальную. С уважением!
Миниатюры
Использование подставляемых функций и включение файла заголовка.   Использование подставляемых функций и включение файла заголовка.  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2012, 08:23     Использование подставляемых функций и включение файла заголовка.
Посмотрите здесь:

Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов C++
Включение файла без .h C++
C++ Использование функций и шаблонов функций
C++ Работа с двумерными числовыми массивами. Использование указателей. Использование функций пользователя.
Итерационные циклы,Определение и вызов функций,Использование библиотечных функций stdio.h C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1477 / 1053 / 45
Регистрация: 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 сохраняет изменения в файле перед компиляцией?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 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++$
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
09.01.2012, 09:23     Использование подставляемых функций и включение файла заголовка. #4
Цитата Сообщение от soon Посмотреть сообщение
g++ foo.hpp foo.cpp main.cpp
Хэдэр не надо, он же все равно инлайнится в файл реализации препроцессором.
coreshok
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++$
Имя файла и все остальное срисовано с книги Д.Л.и я пытаюсь разобрать в ней каждую задачу. Так как же установить это файл или каталог в библиотеку этого компилятора?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.01.2012, 16:05     Использование подставляемых функций и включение файла заголовка. #6
Цитата Сообщение от coreshok Посмотреть сообщение
g++ foo.hpp foo.cpp main.cpp -o main
Я просто собрал их в один файл main путем передачи компилятору имен файлов.
Если header находится в одном каталоге, что и компилируемый файл, то проблем не должно возникнуть.
coreshok
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
09.01.2012, 17:41  [ТС]     Использование подставляемых функций и включение файла заголовка. #7
Как я это понимаю, файлы с расширением .h, .hp и .hpp относятся к подключаемым файлам. С помощи строки пространства имен (как вы мне посоветовали) я опускал расширение <header >, но в этой ситуации это не помогает .Может компилятор с ними не работает или надо что то в настройках настроить.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 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 в своей среде и скомпилируйте его. Он должен собраться без проблем.
coreshok
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
09.01.2012, 18:19  [ТС]     Использование подставляемых функций и включение файла заголовка. #9
А как же этот файл передать компилятору. А если .h нет в каталоге, как его туда внести
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.01.2012, 18:23     Использование подставляемых функций и включение файла заголовка. #10
Цитата Сообщение от coreshok Посмотреть сообщение
А как же этот файл передать компилятору
Он будет включен перепроцессором. Никак foo.hpp не надо передавать.
Просто поместите эти 2 файла в одну папку на жестком диске(да не важно, можно хоть куда, но в одну папку). Откройте main.cpp в своей среде и скомпилируйте его. Больше ничего не требуется.
coreshok
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
09.01.2012, 19:15  [ТС]     Использование подставляемых функций и включение файла заголовка. #11
А как поместить в foo.hpp?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.01.2012, 19:21     Использование подставляемых функций и включение файла заголовка. #12
Цитата Сообщение от coreshok Посмотреть сообщение
А как поместить в foo.hpp?
Что поместить, код?
Вариантов масса. Начиная от помещения в файл через консоль и блокнот, заканчивая print screen -> распознаватель текста -> сохранение в текстовый формат -> сохранение в foo.hpp.

А если серьезно - абсолютно без разницы.
coreshok
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
09.01.2012, 21:29  [ТС]     Использование подставляемых функций и включение файла заголовка. #13
Я конечно дико извиняюсь...Все сделал как вы велели.Коды сохранил в файлах,файлы в папке,папку на жестком, только осталось винчестер поместить в яйцо,а яйцо в ларец, а ларец на тот дуб (понятно какой).Пардон, шутка юмора!Все равно не получается.
coreshok
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
09.01.2012, 21:38  [ТС]     Использование подставляемых функций и включение файла заголовка. #14
Вот скрины.
Миниатюры
Использование подставляемых функций и включение файла заголовка.   Использование подставляемых функций и включение файла заголовка.  
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 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
coreshok
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
10.01.2012, 19:23  [ТС]     Использование подставляемых функций и включение файла заголовка. #16
Уважаемый soon!Благодарю за внимание проявленное ко мне, но все равно что-то не так.Я думаю пока закрыть эту тему и вернуться к ней после того как по упражняюсь без подключения .h,.hp и.hpp фалов.С уважением!
Миниатюры
Использование подставляемых функций и включение файла заголовка.   Использование подставляемых функций и включение файла заголовка.  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2014, 00:03     Использование подставляемых функций и включение файла заголовка.
Еще ссылки по теме:

C/C++ Использование функций, использование break C++
C++ Использование функций и шаблонов функций
C++ Подключение файла заголовка

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

Или воспользуйтесь поиском по форуму:
Zelos
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 11
17.02.2014, 00:03     Использование подставляемых функций и включение файла заголовка. #17
Тоже застрял на этом уроке =\ Сохранил 2 файла в одной папке открыл их в одном каталоге ввел как описывалось #include "Cat" и не работает почему ????
Yandex
Объявления
17.02.2014, 00:03     Использование подставляемых функций и включение файла заголовка.
Ответ Создать тему
Опции темы

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