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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
coreshok
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
#1

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

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

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

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

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

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

Использование функций и шаблонов функций - C++
Составьте программу – формирование цены на молоко. Животновод в начале каждой зимы цену на молоко на р%, а каждым летом снижает на столько...

Использование функций и шаблонов функций - C++
Люди помогите пожалуйста буду очень благодарна) вобщем вот первая часть лабы Написать программу, функция main которой включает...

C/C++ Использование функций, использование break - C++
Здравствуйте. Не знал как назвать тему, боялся что, если назову &quot;КАК ЭТО РАБОТАЕТ?&quot; то её удалят. Пишу программу для вычисления длинных...

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

А если серьезно - абсолютно без разницы.
1
coreshok
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
09.01.2012, 21:29  [ТС] #13
Я конечно дико извиняюсь...Все сделал как вы велели.Коды сохранил в файлах,файлы в папке,папку на жестком, только осталось винчестер поместить в яйцо,а яйцо в ларец, а ларец на тот дуб (понятно какой).Пардон, шутка юмора!Все равно не получается.
0
coreshok
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
09.01.2012, 21:38  [ТС] #14
Вот скрины.
0
Миниатюры
Использование подставляемых функций и включение файла заголовка.   Использование подставляемых функций и включение файла заголовка.  
soon
2541 / 1306 / 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
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2012, 21:40
Привет! Вот еще темы с ответами:

Подключение файла заголовка - C++
Я создал проект Win32 - выбрал пустой проект а далее создал файл заголовка Cat.hpp: #include &lt;iostreram&gt; class Cat { public: ...

Включение файла без .h - C++
Стало интересно, возможно-ли это сделать какими-то несложными процедурами? Т.е. чтобы было так же как подключение iostream #include...

Открытие wav файла и чтение его заголовка - C++
Надо открыть wav файл и прочитать заголовок его , компилиться но ничего не происходит #include &lt;stdio.h&gt; #include &lt;string.h&gt; ...

Двойное включение заголовочного файла - C++
Util.h #ifndef SRV_UTIL_H #define SRV_UTIL_H #include &lt;sys/time.h&gt; unsigned long getMSTime() { struct timeval t; ...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
09.01.2012, 21:40
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru