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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Starstuck
4 / 4 / 0
Регистрация: 01.02.2012
Сообщений: 124
#1

Разбить на два файла .h и .cpp - C++

23.03.2013, 14:05. Просмотров 1267. Ответов 12
Метки нет (Все метки)

Ребят, подскажите, как правильно разбить эту программу на два файла .h и .cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <math.h>
#include <iostream>
 
class square
{
    private:
        double x,y,l;
    public:
    double find_s(double l) { return l*l; };
    double find_p( double l) { return l; };
    double dif_s (double l, double l1) { return abs(l*l-l1*l1); };
    void print_koordinati (double x, double y, double l )
    {
        printf("%f%f\n",x,y );
        printf("%f%f\n",x+l,y );
        printf("%f%f\n",x,y+l );
        printf("%f%f\n",x+l,y+l );
    };
};
 
int main()
{ square s1;
  printf("%f\n",s1.find_s(2));
    
s1.print_koordinati(1,1,2);
    
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2013, 14:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разбить на два файла .h и .cpp (C++):

Два файла .cpp в проекте - C++
Файлы DayOfWeek и main(откуда вызываются методы из DayOfWeek). Пишет ошибку на скрине,что не так? И что такое #include &lt;stdexcept&gt;? ...

Как связать два cpp файла в одном проекте (visual studio 2010) - C++
Есть два программы: одна создает файл.txt, вторая читает из него данные и выводит на экран. создает файл #include &lt;iostream&gt; ...

Требуется разбить программу на два файла - C++
Требуется разбить программу на два файла, но как бы я не старался, у меня не получается это сделать. Уважаемые форумчане, помогите -...

Не удаётся связать два файла timer.h и timer.cpp - C++
Добрый вечер, у меня есть класс и библиотеки которые нужно использовать в нескольких программах, по этому я хочу сделать отдельный файл...

Разбить main.cpp на файлы - C++
Есть вот такой main.cpp: #include &lt;stdlib.h&gt; #include &lt;iostream&gt; #include &lt;string.h&gt; //#include &lt;stdint.h&gt; //#include &lt;limits.h&gt; ...

Разбить исходный код на main.cpp и my.h - C++
#include &lt;windows.h&gt; #include &lt;iostream&gt; using namespace std; class vremya { public: int vvod(); int vivod(); ...

12
Байт
Диссидент
Эксперт C
16571 / 10841 / 1651
Регистрация: 24.12.2010
Сообщений: 20,965
23.03.2013, 14:17 #2
Строки 4 - 19 суешь в my.h
В начало my.h ставишь
C++
1
2
#ifndef MY_H
#define MY_H
В конец
C++
1
#endif
Вместо строк 4-19 вставляешь 1 строчку #include "my.h"
Все.
Теперь главное. Пойми простую штуку. Если в тексте программы встречается #include "файл", то этот файл просто вставляется на место этого include. И больше никаких секретов нет.
Программирующие на Си, Си++ кое о чем договорились, как это использовать. Но прекомпилятор об этих договорах ничего не знает и тупо делает свою макросную работу.
0
Starstuck
4 / 4 / 0
Регистрация: 01.02.2012
Сообщений: 124
23.03.2013, 14:53  [ТС] #3
Байт, Всё понял, спасибо!
0
beta-particle
4 / 4 / 0
Регистрация: 07.01.2013
Сообщений: 103
23.03.2013, 14:58 #4
Вопрос: А зачем нужно #ifndef и #endif?
0
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
23.03.2013, 15:05 #5
Почитай здесь
0
Starstuck
4 / 4 / 0
Регистрация: 01.02.2012
Сообщений: 124
23.03.2013, 15:34  [ТС] #6
Выдаёт ошибку! Написал на XCode - всё окей. Компилирую на DevC++ - выдает бог знает что. Помогите

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <math.h>
#include <iostream>
 
class square
{
    private:
        double x,y,l;
    public:
    double find_s(double l) { return l*l; };
    double find_p( double l) { return l; };
    double dif_s (double l, double l1) { return abs(l*l-l1*l1); };
    void print_koordinati (double x, double y, double l )
    {
        printf("%f%f\n",x,y );
        printf("%f%f\n",x+l,y );
        printf("%f%f\n",x,y+l );
        printf("%f%f\n",x+l,y+l );
    };
};
 
int main()
{ square s1;
  printf("%f\n",s1.find_s(2));
    
s1.print_koordinati(1,1,2);
    
}
0
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
23.03.2013, 15:38 #7
Какие ошибки выдает?
1
Starstuck
4 / 4 / 0
Регистрация: 01.02.2012
Сообщений: 124
23.03.2013, 15:40  [ТС] #8
sovaz1997, 11 строка

C:\Users\DENIS\Desktop\ysatiy.cpp In member function `double square::dif_s(double, double)':
11 C:\Users\DENIS\Desktop\ysatiy.cpp [Warning] passing `double' for converting 1 of `int abs(int)'
0
Байт
Диссидент
Эксперт C
16571 / 10841 / 1651
Регистрация: 24.12.2010
Сообщений: 20,965
23.03.2013, 15:41 #9
Цитата Сообщение от beta-particle Посмотреть сообщение
А зачем нужно #ifndef и #endif?
В двух словах, чтоб не было случайного повторного включения, которое приведет в созданию бесконечного файла.
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.03.2013, 15:49 #10
Вместо abs() используйте fabs().
1
Starstuck
4 / 4 / 0
Регистрация: 01.02.2012
Сообщений: 124
23.03.2013, 15:51  [ТС] #11
alsav22, спасибо
0
coloc
погромист
411 / 247 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
23.03.2013, 16:06 #12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <cmath>
#include <iostream>
#include <cstdio>
 
class square
{
    private:
        double x,y,l;
    public:
    double find_s(double l) { return l*l; }
    double find_p( double l) { return l; }
    double dif_s (double l, double l1) { return fabs(l*l-l1*l1); }
    void print_koordinati (double x, double y, double l )
    {
        printf("%f%f\n",x,y );
        printf("%f%f\n",x+l,y );
        printf("%f%f\n",x,y+l );
        printf("%f%f\n",x+l,y+l );
    }
};
 
int main()
{ square s1;
  printf("%f\n",s1.find_s(2));
    
s1.print_koordinati(1,1,2);
    
}
у меня тоже DevC++, все компилирует
0
Kuzia domovenok
1958 / 1811 / 142
Регистрация: 25.03.2012
Сообщений: 6,280
Записей в блоге: 1
23.03.2013, 16:55 #13
Цитата Сообщение от Байт Посмотреть сообщение
В двух словах, чтоб не было случайного повторного включения, которое приведет в созданию бесконечного файла.
Ну не только для этого. Даже я б сказал редко для этого. Это директивы препроцессора, изменяющие код программы перед последующей компиляцией и сборкой.
В основном #ifdef/#ifndef для исключения/добавления в программу кусков программного кода в зависимости от определённых(дефайнами) макросов.

Добавлено через 1 час 6 минут
0
23.03.2013, 16:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2013, 16:55
Привет! Вот еще темы с ответами:

Как разбить код на несколько *.CPP* - C++
Как разбить код на несколько *.CPP* Добрый вечер - при изучении языка С где то в литературе видемо упустил такую информацию и не где...

Разбить массив на два - C++
3. Дано масив (А) із К елементів (К- парне число). Утворити 2 масиви (В і С), переписуючи у масив В першу половину масиву А, у масив С –...

Компиляция файла cpp - C++
Ситуация: среды visual studio нет и не будет. Имеется файл с расширением cpp. Как его скомпилировать через командную строку? С cs все...

Создание файла .h и файла .cpp - C++
Написать программу, которая состоит из следующих действий: 1. Создание заголовочного файла (с расширением .h). В файле описывается: *-...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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