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

Создание cpp файлов - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.94
arsstyleh
0 / 0 / 0
Регистрация: 24.07.2010
Сообщений: 16
24.07.2010, 15:39     Создание cpp файлов #1
я недавно начал зучать язык программированя С++ и делаю это самостоятельно с помашю книг и интернета. я ищю статьи где было бы подробно описанно для каких функции какие файли создаються например для написания простого математического задания можно использовать файл .cpp, я так понимаю но у меня и с этим тоже проблемы, недавно я открыл "project", в ней файл .срр но когда я в этом же проекте создал второй .срр файл то после нажатия клавиш ctrl+F5 вывело ошибку
"Ошибка 1 error LNK2005: _main уже определен в sd.obj ars.obj arsen"
"Ошибка 3 fatal error LNK1169: обнаружен многократно определенный символ - один или более C:\Documents and Settings\user\My Documents\Visual Studio 2008\Projects\arsen\Debug\arsen.exe 1 arsen
"

если кто то понял вчем дело буду очень признателень если даст мне совет.

выходит что в одном проекте должен быть только один .срр файл??? (я думаю что такое невозможно в таком грамадном программе, наверника я что то не допонимаю, но что именно надеюсь что помогите узнать!)

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

заранее спасибо всем кто поможет
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sekt
 Аватар для Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
24.07.2010, 16:07     Создание cpp файлов #2
cpp может быть сколько угодно.У вас проблемы с функцией int main();
main Должна быть одна в ней запускается ваш код.
arsstyleh
0 / 0 / 0
Регистрация: 24.07.2010
Сообщений: 16
24.07.2010, 16:15  [ТС]     Создание cpp файлов #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
 
int main()
{
    int var1;   //arajin popoxakan
    int var2;   //erkrord popoxakan
    var1 = 10;
    var2 = var1 + 10;
    cout << "var2 = var1 + 10 = " << var2 << endl;  // var2-i dursberum
    return 0;
}
если я написал такую программу и еще один файл добовляю а вней тоже есть

C++
1
2
3
4
5
#include <iostream>
using namespace std;
 
int main()
{..................}
то всегда выдаст эту ошибку? может я должен создать какой то файл где я напишу

C++
1
2
3
4
5
#include <iostream>
using namespace std;
 
int main()
{
ЭТУ ЧАСТЬ а в остальних срр файлах просто тело программы тоесть то что в кобках функции main
так будет правильно???




Извините если вопросы ОЧЕНЬ "ТУПЫЕ"
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
24.07.2010, 16:36     Создание cpp файлов #4
Вам же сказали, основная функция, она же main (), должна быть описана один раз.
Lonely_Romantic
8 / 8 / 1
Регистрация: 13.07.2010
Сообщений: 14
24.07.2010, 17:03     Создание cpp файлов #5

Не по теме:

Да нет, arsstyleh, не тупые



Определитесь сначала, для чего вам новый *.cpp файл? Зачем тело программы куда-то переносить? Если программа очень большая, то ее можно разбивать на подпрограммы, которые в свою очередь можно вынести в другие *.cpp файлы.

Ну если очень хочется, вот тебе пример, разбирайся.
Есть основной файл <Имя программы>.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include "MyMath.h"
 
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    int x,y,sum;
 
    cin >> x;
    cin >> y;
 
    sum = Summ(x,y);
    cout << sum << endl;
 
    system("PAUSE");
    return 0;
}
Подпрограмма Summ(x,y) вызывается в <Имя программы>.cpp, но она определена в MyMath.cpp
MyMath.h - это заголовочный файл для MyMath.cpp, в нем прототип функции описан.

MyMath.h:
C++
1
2
3
4
5
6
7
8
#include "stdafx.h"
 
#ifndef _math
#define _math
 
int Summ(int a,int b);
 
#endif
MyMath.cpp:
C++
1
2
3
4
5
6
7
#include "MyMath.h"
 
int Summ(int a,int b)
{   
    int r = a+b;
    return r;
}
arsstyleh
0 / 0 / 0
Регистрация: 24.07.2010
Сообщений: 16
24.07.2010, 21:57  [ТС]     Создание cpp файлов #6
Lonely_Romantic Спасибо, ваш ответ был понятливее...
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
24.07.2010, 22:19     Создание cpp файлов #7
arsstyleh, изучайте литературу последовательно, тогда проблем не будет. Главное литературу правильно подобрать.
arsstyleh
0 / 0 / 0
Регистрация: 24.07.2010
Сообщений: 16
24.07.2010, 22:30  [ТС]     Создание cpp файлов #8
CyBOSSeR я вообщето искал литературу по этому принципу: чтобы было как можно больше страниц, потому что много книг изучал и пришел к выводу что чем больше страниц тем подробнее все написанно о программе. насшет "изучайте литературу последовательно" я с самого начала книги читаю и в полне внимательно, там просто не написанны подробности про то как создать файли как они должны быт распаложены, и если человек скажем создал один срр файл после чего захотел второй пример с книги написать в отдельном файле, там не сказанно что нужно создать файл и потом в каждом новом срр просто вызывать этот файл где написанно функция майн. (принцып как я понял такой же как и в php программировании где строятся например header, footer, потом при помощи include визываются эти файли.
А сейчась под рукой есть книга Х.М.Дейтел, П.Дж. Дейтел четвертое издание "как программировать на С++" и еше книга скачанная из сайта
 Комментарий модератора 
ссылки на подобные сайты запрещены. Правила форума п. 3.10
автор: Р. Лафоре "обьектно ориентированное программирование в С++" 4-е издание.

Если кто то может мне посоветовать литературу которую считает лучше чем эти, буду признателен.
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232
25.07.2010, 15:22     Создание cpp файлов #9
arsstyleh, Дейтла тебе пока что вполне хватит в ооп пока что не лезь, никуда не торопись, делай все последовательно, разбирай что делает каждая строчка... можешь почитать вот эти уроки по С/С++ там подробные примеры с комментариями
arsstyleh
0 / 0 / 0
Регистрация: 24.07.2010
Сообщений: 16
25.07.2010, 18:56  [ТС]     Создание cpp файлов #10
Mur3ik а я с самого начала какраз и изучаю думаю если коректно не пойму как должны создоватьса срр файли и проекты то врядли стоит стремится дальше так и не пробовая узнать. просто тут не так как в 2005 версии, там можно было в одном проекте создовать несколько срр файлов и в каждом были написанны
C++
1
2
3
4
5
6
#include <iostream>
using ...
int main()
{
...
}

и не приводило ошибки будто майн употреблен несколько раз, видимо в компиляторе или как эта часть называется не знаю ну вот там наверно что то изменили усовершенствовали и вот результат для навычка
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
25.07.2010, 19:22     Создание cpp файлов #11
arsstyleh, вы ошибаетесь. 2005 и 2008 одинаково не воспринимают функцию main в разных cpp файлах одного проекта. Другое дело, что то, о чем вы говорите, может быть тогда все остальные файлы должны были быть вручную выгружены из проекта и подключен только один cpp-файл с функцией main и выгруженные файлы попросту в таком случае не компилируются и не имеют никакого отношения к проекту
arsstyleh
0 / 0 / 0
Регистрация: 24.07.2010
Сообщений: 16
25.07.2010, 19:47  [ТС]     Создание cpp файлов #12
Цитата Сообщение от arsstyleh Посмотреть сообщение
просто тут не так как в 2005 версии, там можно было в одном проекте создовать несколько срр файлов
извините но помоему я тже имел ввиду что 2005 и 2008 версии отличаются. или все же не прав был????
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
25.07.2010, 20:13     Создание cpp файлов #13
arsstyleh, я не писал что они отличаются, я написал вот что
Цитата Сообщение от M128K145 Посмотреть сообщение
2005 и 2008 одинаково не воспринимают функцию main в разных cpp файлах одного проекта
2008 и 2005 относительно вашего вопроса абсолютно одинаковы.
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232
25.07.2010, 20:23     Создание cpp файлов #14
в принципе можно держать несколько файлов с функцией майн в одном проекте, это даже удобно для проверки разных частей программы. но активным должен быть только один файл с главной функцией. из компиляции можно исключать cpp и h файлы нажав на них правой кнопкой мышь - properties - general - excluded from build
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
25.07.2010, 20:28     Создание cpp файлов #15
Mur3ik, это написано в 11 посте
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16828 / 5249 / 321
Регистрация: 30.03.2009
Сообщений: 14,136
Записей в блоге: 26
25.07.2010, 23:00     Создание cpp файлов #16
Господа, по-моему его интересует следующее. У человека есть проект в VS2008. Он хочет добавить к проекту ещё один файл *.cpp. Его интересует, куда в IDE надо нажать, чтобы добавить (потому как для IDE такое действие не совсем тривиально)

Ну и как-то надо доступно объяснить, что после создания нового файла вовсе не нужно туда копировать код main'а. И при нормельном создании нового файла проекта он (файл) должен быть пустым (т.е. не содержать никакого заранее сгенерённого текста)
arsstyleh
0 / 0 / 0
Регистрация: 24.07.2010
Сообщений: 16
25.07.2010, 23:09  [ТС]     Создание cpp файлов #17
Evg тебе спосибо за присоединение и всем за советы, кажется я не смог излогать понятнее то что мне интересовало, но уже нашел очень полезные материалы на сйте http://msdn.microsoft.com/ru-ru/library/ms235627.aspx
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
26.07.2010, 03:23     Создание cpp файлов #18
Цитата Сообщение от M128K145 Посмотреть сообщение
2008 и 2005 относительно вашего вопроса абсолютно одинаковы.
Мало того - ни один компилятор не скомпилирует вместе два файла, в которых определена функция с одним и тем же именем.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2010, 11:11     Создание cpp файлов
Еще ссылки по теме:

C++ Несколько cpp файлов в проекте
C++ Взаимный include без использования cpp-файлов
Условное подключение cpp файлов C++

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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16828 / 5249 / 321
Регистрация: 30.03.2009
Сообщений: 14,136
Записей в блоге: 26
26.07.2010, 11:11     Создание cpp файлов #19
Цитата Сообщение от easybudda Посмотреть сообщение
Мало того - ни один компилятор не скомпилирует вместе два файла, в которых определена функция с одним и тем же именем.
У него по ходу дела формировалась статическая библиотека. В юниксе, по крайней мере, такое точно бы прошло (просто ни один файл из библиотеки не попал бы в линковку, т.к. не снаружи не имеет нужных UNDEF'ов). Если под виндами принцип построения статической библиотеки такой же, том там тоже пройдёт
Yandex
Объявления
26.07.2010, 11:11     Создание cpp файлов
Ответ Создать тему
Опции темы

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