Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
skynet120
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 76
1

Как правильно использовать несколько файлов

17.02.2013, 23:19. Просмотров 887. Ответов 2
Метки нет (Все метки)

Доброе время суток,

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

есть 3 файла: main.cpp (основной); les3.cpp, les4.cpp (дополнительные) - возможно их нужно переименовать

main.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
#include <iostream>
#include <conio.h>
#include <stdio.h>
 
#include "les3.cpp"
#include "les4.cpp"
 
using namespace std;
 
int main()
{
    int N;
 
    do{
        cout << "Выберите номер урока (1-3): ";
        cin >> N;
 
        switch(N) {case 1: les3(); break; case 2: les4(); break;}
 
        system("cls");
 
    } while (N!='X');
 
    return(0);
}
les3.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
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int les3()
{
    setlocale(LC_ALL,"RUS");
 
    int N;
 
    do{
 
        system("cls");
 
        cout << "Домашнее задание к уроку №3" << "\n";
        cout << "------------------------------------------" << "\n";
 
        cout << "Укажите номер задания (1-3): ";
        cin >> N;
 
        switch (N){
 
//Задание 1
        case 1: {
........
les4.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
28
29
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int les4()
{
    setlocale(LC_ALL,"RUS");
 
    int N;
 
    do{
 
        system("cls");
 
        cout << "Домашнее задание к уроку №4" << "\n";
        cout << "------------------------------------------" << "\n";
 
        cout << "Укажите номер задания (1-3): ";
        cin >> N;
 
        system("cls");
 
        switch (N){
 
 
//Задание 1
        case 1:
........
VS2012 выдает ошибки:
1. Error 1 error LNK2005: "int __cdecl les3(void)" (?les3@@YAHXZ) already defined in les3.obj d:\Programing\kaplun.a.v\les4\homework_global\homework_global\main.obj homework_global
2. Error 2 error LNK2005: "int __cdecl les4(void)" (?les4@@YAHXZ) already defined in les4.obj d:\Programing\kaplun.a.v\les4\homework_global\homework_global\main.obj homework_global
3. Error 3 error LNK1169: one or more multiply defined symbols found D:\Programing\kaplun.a.v\les4\homework_global\Debug\homework_global.exe homework_global


подскажите как быть
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2013, 23:19
Ответы с готовыми решениями:

Как пользоваться заголовочными файлами и использовать несколько исходных файлов?
Как пользоваться несколькими файлами cpp, и заголовками h , в Visual Studio WIN32 C++ Дайте...

Как правильно передать указатель на структуру, и правильно ее использовать
Я планирую сделать сортировку, но компилятор начал ругаться &quot;Нет существует подходящей функции...

Как правильно использовать цикл?
Задача с экспонентами. Нужно найти следующее:...

Как правильно использовать thread?
Не могу понять как удалить поток thread во время его выполнения. То есть у меня есть поток в...

Как правильно использовать map?
Свой код писал по примеру cut. Вот, что есть, и показываю скрин екхепшана, который...

2
vua72
418 / 417 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
18.02.2013, 00:52 2
как-то так
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 <stdio.h>
// описываем функцию f1() как внешнюю
extern int f1();
// описываем функцию f2() как внешнюю
extern int f2();
int main()
{
    int n1, n2;
    n1 = f1();
    n2 = f2();
    printf("f1() = %d\n",n1);
    printf("f2() = %d\n",n2);
    return 0;
}
 
//Теперь создаем два файла, каждый из которых будет содержать полное определение внешней функции из главной программы. Файлы назовем f1.c и f2.c: 
 
// файл f1.c
int f1()
{
    return 2;
}
// файл f2.c
int f2()
{
    return 10;
}
0
skynet120
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 76
18.02.2013, 00:58  [ТС] 3
спасибо, разобрался.
нужно было доп. файлы делать хедерными (.h) и сразу все заработало
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2013, 00:58

Как правильно использовать struct?
Написал небольшую, глупенькую программку, но столкнулся с проблемой заполнения структуры. Если...

Как правильно использовать cin.get?
cin.get и cin.getline - одно и то же? Мне нужно задание полностью с указателями сделать, но я не...

Как использовать правильно потоки
У меня есть нечто рода void DiscordJob::SendMessageThread(const char *chanel, const char...


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

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

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