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

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

Восстановить пароль Регистрация
 
Капитан Техно
 Аватар для Капитан Техно
0 / 0 / 0
Регистрация: 18.07.2011
Сообщений: 32
29.01.2012, 14:11     ООР множественное определение конструктора #1
Доброго времени, народ! Учился по книге Дейтела, и наткнулся на такой пример. Перепечатал, два раза проверил, ещё раз перепечатал. Прочитал ошибку, перевел, получалось что произошло множественное определение конструктора, ну или как то так. Вот примеры, кто сталкивался? помогите пожалуйста, с меня плюсозавр в репутационный период полезно ответившего.

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 ===|
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2012, 14:11     ООР множественное определение конструктора
Посмотрите здесь:

C++ Множественное наследование
Множественное наследование C++
множественное наследование C++
Множественное наследование C++
Множественное наследование C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KuKu
 Аватар для KuKu
1538 / 1016 / 69
Регистрация: 17.04.2009
Сообщений: 2,946
29.01.2012, 14:47     ООР множественное определение конструктора #2
в main.cpp замените #include "create.cpp" на #include "create.h"
Капитан Техно
 Аватар для Капитан Техно
0 / 0 / 0
Регистрация: 18.07.2011
Сообщений: 32
29.01.2012, 14:58  [ТС]     ООР множественное определение конструктора #3
Большое спасибо, грубейшая ошибка со стороны редакторов.
mikillskegg
12 / 12 / 1
Регистрация: 31.10.2011
Сообщений: 35
29.01.2012, 21:18     ООР множественное определение конструктора #4
На самом деле, все будет компилироваться, если компилировать командой

Bash
1
g++ main.cpp -o prog
Хотя, конечно, включать вот так в один модуль текст другого - полнейшее безобразие.
Yandex
Объявления
29.01.2012, 21:18     ООР множественное определение конструктора
Ответ Создать тему
Опции темы

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