Страница 1 из 1

Помогите правильно создать файлы проекта

Добавлено: 16 сен 2009, 06:53
Timofey
Добрый день!
Начинаю осваивать С++. Надо сделать класс Date для работы с датами. Чтобы программа хорошо и правильно выглядела, надо разносить её составные части по модулям, на этом у меня тупик, выскакивает ошибка (см. ниже).
Кодю в Visual C++ 2005 Express Edition. Создал 2 файла: main.cpp и cls_Data.cpp
Как я понимаю, надо создать ещё заголовочный файл описывающий cls_Data.cpp, например cls_Data.h, но если он нужен, то что в нём надо написать? Как правильно распределить код по файлам?

main.cpp (здесь будут тесты):

Код: Выделить всё

#include <iostream>
#include "cls_Date.cpp"
 
int main(){
Date varDate(11, 11, 11);
};

cls_Data.cpp (пока только сам класс и его конструктор, позже добавлю функции для работы с датой, проверки и т.п.):

Код: Выделить всё

#include <iostream>
 
class Date{
    int day, month, year;
public:
    Date(int d, int m, int y);
};
 
Date: :D ate(int d, int m, int y){ 
    day = d;
    month = m;
    year = y;
};
Ошибки:
error LNK2005: "public: __thiscall Date:: Date(int,int,int)" (??0Date@@QAE@HHH@Z) already defined in main.obj cls_Date.obj
fatal error LNK1169: one or more multiply defined symbols found D:\_ProFile\Тимофей\Мои документы\Visual Studio 2005\Projects\cls_Date\Debug\cls_Date.exe

Re: Помогите правильно создать файлы проекта

Добавлено: 16 сен 2009, 19:44
Newbie
#include "cls_Date.cpp"....

Как бы правильно хранить описание файлы в хедерах...

создай хедер "cls_Date.h"

в него вставь код написанный и добавь #include "cls_Date.h" в main.cpp.

зачем?)

в хедерах описание самого класса(можно сразу в нем канешно описывать), в cpp описание функций.

В твоем случае будет:
cls_Date.h:
#include <iostream>

class Date{
int day, month, year;
public:
Date(int d, int m, int y);
};

в cls_Date.cpp:
#include "cls_Date.h"

Date:: Date(int d, int m, int y){
day = d;
month = m;
year = y;
};

Re: Помогите правильно создать файлы проекта

Добавлено: 17 сен 2009, 04:47
Timofey
Спасибо. Разобрался.

Re: Помогите правильно создать файлы проекта

Добавлено: 26 окт 2009, 08:18
atavin-ta
&quot писал(а): хедерах описание самого класса(можно сразу в нем канешно описывать), в cpp описание функций
Я часто обшожусь без хедеров, а классы объявляю в файлах с их реализациями и инкладю непосредственно эти файлы. Чем это плохо? Данный пост попрошу рассматривать не как спорный а как вопросительный.

Re: Помогите правильно создать файлы проекта

Добавлено: 17 дек 2009, 06:15
1nclude
atavin-ta писал(а):Я часто обшожусь без хедеров, а классы объявляю в файлах с их реализациями и инкладю непосредственно эти файлы. Чем это плохо? Данный пост попрошу рассматривать не как спорный а как вопросительный.
Плохо?...Нет...Это скорее странно...Вы странныйчеловек. Вам дали возможность удобной организации проекта, с разделением интерфейсной части от реализации, а Вы на эту возможность дебагер кладёте.

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

Вам дали возможность распространять интерфейс не открывая при этом никому вашу реализацию, но и тут Вам не угодили.

Что я хотел сказать? Всего лишь то, что если Вы и используете заведомо неправильные вещи или правильные вещи но заведомо неправильно, то не стоит об этом рассказывать широкой общественности, потому как Вас могут читать пока ещё неокрепшие духом и необременённые особыми знаниями начинающие кодеры, которые воспримут Ваш пост как указание к действию и в дальнейшем получать n-ое колличество шишок на свою голову.