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

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

Войти
Регистрация
Восстановить пароль
 
Капитан Техно
0 / 0 / 0
Регистрация: 18.07.2011
Сообщений: 32
#1

ООР множественное определение конструктора - C++

29.01.2012, 14:11. Просмотров 634. Ответов 3
Метки нет (Все метки)

Доброго времени, народ! Учился по книге Дейтела, и наткнулся на такой пример. Перепечатал, два раза проверил, ещё раз перепечатал. Прочитал ошибку, перевел, получалось что произошло множественное определение конструктора, ну или как то так. Вот примеры, кто сталкивался? помогите пожалуйста, с меня плюсозавр в репутационный период полезно ответившего.

create.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//CREATE.H
#ifndef CREATE_H_INCLUDED
#define CREATE_H_INCLUDED
 
class CreateAndDestroy {
public:
   CreateAndDestroy(int); // конструктор
    ~CreateAndDestroy(); // деструктор
 
private:
    int data;
 
};
#endif // CREATE_H_INCLUDED
create.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// CREATE.CPP
 
// Определения функций-элементов для класса CreateAndDestroy
 
#include <iostream>
#include "create.h"
 
using namespace std;
 
 CreateAndDestroy::CreateAndDestroy(int value)
{
    data = value;
    cout << "Объект " << data << " конструктор";
}
 
 CreateAndDestroy::~CreateAndDestroy()
{ cout << "Объект " << data << " деструктор " << endl; }
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
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include "create.cpp"
 
using namespace std;
 
void create(void);
CreateAndDestroy first(1);
 
int main()
{
    cout << "   (глобальный созданный до main)" << endl;
 
    CreateAndDestroy second(2);
    cout << "   (локальный автоматический в main)" << endl;
 
    static CreateAndDestroy thrid(3);
    cout << "   (локальный статический в main)" << endl;
    create();
 
    CreateAndDestroy fourth(4);
    cout << "   (локальный автоматический в main)" << endl;
 
    return 0;
}
 
 void create(void)
{
    CreateAndDestroy fifth(5);
    cout << "   (локальный автоматический в create)" << endl;
 
    static CreateAndDestroy sixth(6);
    cout << "   (локальный статический в create)" << endl;
 
    CreateAndDestroy seventh(7);
    cout << "   (локальный автоматический в create)" << endl;
}
вот ошибка


obj/Debug/main.o||In function `CreateAndDestroy':|
/home/skywalker/Net/Dest/create.cpp|10|multiple definition of `CreateAndDestroy::CreateAndDestroy(int)'|
obj/Debug/create.o:/home/skywalker/Net/Dest/create.cpp|10|first defined here|
obj/Debug/main.o||In function `CreateAndDestroy':|
/home/skywalker/Net/Dest/create.cpp|10|multiple definition of `CreateAndDestroy::CreateAndDestroy(int)'|
obj/Debug/create.o:/home/skywalker/Net/Dest/create.cpp|10|first defined here|
obj/Debug/main.o||In function `~CreateAndDestroy':|
/home/skywalker/Net/Dest/create.cpp|16|multiple definition of `CreateAndDestroy::~CreateAndDestroy()'|
obj/Debug/create.o:/home/skywalker/Net/Dest/create.cpp|16|first defined here|
obj/Debug/main.o||In function `~CreateAndDestroy':|
/home/skywalker/Net/Dest/create.cpp|16|multiple definition of `CreateAndDestroy::~CreateAndDestroy()'|
obj/Debug/create.o:/home/skywalker/Net/Dest/create.cpp|16|first defined here|
||=== Build finished: 8 errors, 0 warnings ===|
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2012, 14:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ООР множественное определение конструктора (C++):

Множественное определение переменной - C++
Доброго времени суток. Просидев n-ое кол-во часов, доделал считай проект и тут вылезли ошибки о multiple definition. Ругается на...

Определение конструктора копирования для производного класса - C++
Как написать определение конструктора копирования для производного класса, а именно копировании части базового класса из одного...

В чём отличия конструктора копирования и конструктора перемещения? Где и как их нужно использовать? - C++
Помогите разобраться в копирующем и перемещающем конструкторах. В чём их существенное отличие и какой плюс от использования перемещающего...

множественное наследование - C++
Мечтаю реализовать такую иерархию human-&gt;employee-&gt;doctor в реализации doctor ругает конструктор. Ошибка 1 error C2062: type 'char'...

Множественное наследование - C++
Вычислите площадь и периметр прямоугольника, если известны его диагональ и одна из сторон.

Множественное наследование - C++
Возник вопрос по теме множественное наследование. Вот скажем у нас определены классы: class Animal{ public: int...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
KuKu
1558 / 1036 / 78
Регистрация: 17.04.2009
Сообщений: 2,985
29.01.2012, 14:47 #2
в main.cpp замените #include "create.cpp" на #include "create.h"
2
Капитан Техно
0 / 0 / 0
Регистрация: 18.07.2011
Сообщений: 32
29.01.2012, 14:58  [ТС] #3
Большое спасибо, грубейшая ошибка со стороны редакторов.
0
mikillskegg
12 / 12 / 1
Регистрация: 31.10.2011
Сообщений: 35
29.01.2012, 21:18 #4
На самом деле, все будет компилироваться, если компилировать командой

Bash
1
g++ main.cpp -o prog
Хотя, конечно, включать вот так в один модуль текст другого - полнейшее безобразие.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2012, 21:18
Привет! Вот еще темы с ответами:

множественное наследование - C++
разработайте алгоритм и создайте программы с применением множественного наследования. При выполнении данного задания необходимо создать не...

Множественное наследование - C++
Имеется множественное наследование в виде треугольника. Если в обоих базовых классах имеются поля с одинаковым названием и смыслом, может...

Множественное наследование - C++
Друзья прошу помочь разобраться, как получить доступ из массива J, к методу (O) из класса (С) #include &lt;iostream&gt; using...

Множественное наследование - C++
Так как у меня эта тема заняла долгое время для изучения ,выкладываю простой пример для освоения #include&lt;iostream&gt; using namespace...


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

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

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