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

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

Войти
Регистрация
Восстановить пароль
 
Diabolisk
30 / 2 / 0
Регистрация: 26.04.2012
Сообщений: 51
#1

По разбиению программы на файлы - C++

02.06.2012, 15:48. Просмотров 426. Ответов 4
Метки нет (Все метки)

Хочу написать программу, так что бы отдельные функции был и записаны в различные файлы, как это реализовать? и что делать с глобальными переменными(собираюсь сделать динамический линейный список таким образом)?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2012, 15:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос По разбиению программы на файлы (C++):

Разбиение программы на файлы - C++
Возникла проблема в тривиальной задаче. Создал шаблонный класс вектор, который работает если в одном файле. Стоить разбить на файлы...

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

Разделение программы на файлы - C++
Всем привет. Изучаю алгоритмы сортировки. Вот что уже написал: //sort.cpp #include "sort.h" template <class T> void...

Разбиение программы на файлы С++ - C++
Здравствуйте! У меня не получается линейный алгоритм своей программы разбить на два файла именно следующим образом. В первом будет...

Разработка программы сохраняющей в файлы в word - C++
Доброго времени суток, уважаемые программисты. Хотелось бы услышать ваш совет в такой непосильной для меня задаче. Надо сделать программу,...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
dimcoder
Полярный
462 / 434 / 68
Регистрация: 11.09.2011
Сообщений: 1,132
02.06.2012, 15:57 #2
Цитата Сообщение от Diabolisk Посмотреть сообщение
Хочу написать программу, так что бы отдельные функции был и записаны в различные файлы, как это реализовать?
Для этого есть хэдеры, то есть файлы с расширением .h Там объявляете свои функции, и подключаете этот файл. Пример:

C++
1
2
3
4
5
6
7
#ifndef MYFUNC_H   //Что бы не возникло ошибки при повторном подключении этого файла
#define MYFUNC_H
    int writeNumber(int x)
    {
        std::cout << x << std::endl;
    }
#endif
Пример использования:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <cstdio>
#include <iostream>
#include <myfunc.h>
 
 
using namespace std;
 
int main(int intArgc, char* pszArgs[])
{
    int x;
    cin >> x;
    writeNumber(x);
    system("PAUSE > NULL");   
    return EXIT_SUCCESS;
}
Цитата Сообщение от Diabolisk Посмотреть сообщение
и что делать с глобальными переменными
Если прямо надо подключить из хэдера, то там и объявляете.
1
Кот Ангенс
317 / 267 / 38
Регистрация: 24.05.2012
Сообщений: 629
02.06.2012, 16:27 #3
Цитата Сообщение от dimcoder Посмотреть сообщение
C++
1
2
3
4
5
6
7
#ifndef MYFUNC_H * //Что бы не возникло ошибки при повторном подключении этого файла
#define MYFUNC_H
    int writeNumber(int x)
    {
        std::cout << x << std::endl;
    }
#endif
Разве не будет ошибки при попытке подключения такого заголовка в несколько исходников? Мне всегда казалось, что следует разделять объявление и определение:
C++
1
2
3
4
5
6
7
//myfunc.h:
#ifndef MYFUNC_H
#define MYFUNC_H
 
    void WriteNumber(int);
 
#endif
C++
1
2
3
4
5
6
7
8
9
//myfunc.cpp:
#include <iostream>
#include "myfunc.h"
 
using namespace std;
 
void WriteNumber(int x) {
    cout << x << endl;
}
0
Diabolisk
30 / 2 / 0
Регистрация: 26.04.2012
Сообщений: 51
02.06.2012, 17:59  [ТС] #4
Вот пример двух простых хедеров, почему то я не могу подключить к одному wwod.h
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
#ifndef vvod_h
#define vvod_h
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct  i{
    int r;
    int t;
    struct i *ptr;
    }*q;
int vvod(void){
    struct i *w,*e;
    int z;
    mymet:{
    printf("sozadt zapis'(1/0)???");
    scanf("%d",&z);
    };
    while (z==1){
        w=(struct i*)malloc(sizeof(struct i));
        scanf("r=%d/t t=%d\n",&w->r,&w->t);
        w->ptr=q;
        q=w;
        goto mymet;};
        free(w);
    return 0;
    }
#endif
и вот второй файл
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#ifndef vivod_h
#define vivod_h
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<iostream.h>
#include(WWOD.H>
int vivod(void){
    struct i *z;
    z=q;
    while(z){
         printf("r=%d\tt=%d\n",z->r,z-q);
         z=z->ptr;
         }
    return 0};
#endif
что не так делаю?

Добавлено через 49 минут
в место include<vvod.h> надо было написать include"vvod.h" и всё)


теперь проблема не знаю как всё это связанно вызвать 3тий файл который по задумке должен был вызывать всё это вот
C++
1
2
3
4
5
6
7
8
#include"vvod.h"
#include"wiwod.h"
#include<conio.h>
int main(void){
    clrscr();
    vvod;
    vivod;
        return 0;}
0
Кот Ангенс
317 / 267 / 38
Регистрация: 24.05.2012
Сообщений: 629
04.06.2012, 12:11 #5
Цитата Сообщение от Diabolisk Посмотреть сообщение
C++
1
2
vvod;
vivod;
Скобок нет.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2012, 12:11
Привет! Вот еще темы с ответами:

Ошибка при разбиении программы на файлы(модули) - C++
Исходный код: #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;fstream&gt; #include &lt;conio.h&gt; using namespace std; struct...

Ошибка после завершения программы. Двоичные файлы. Структуры - C++
Программа работает нормально по записи в двоичный файл и считывании с него, но одна проблема появляется в конце после завершения программы....

При разбиении программы на *.cpp, *.h - файлы программа не компилируется. - C++
Если собрать всё в zadacha.cpp, то всё хорошо компилируется. Но если разбить на файлы - ошибка компилятора. В чём проблема? ...

Задача по разбиению отрезка на N частей - Delphi
Четыре из пяти внезапно свалившихся лаб по Делфи сделал, а вот пятую кажется не осилю... &quot;Дано целое число N(&gt;2) и две вещественные точки...


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

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

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