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

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

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

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

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

Множественное наследование C++
C++ Множественное наследование
Множественное наследование C++
Множественное наследование C++
Множественное наследование C++
Множественное число C++
C++ множественное наследование
C++ Определение конструктора копирования для производного класса
C++ Множественное определение переменной
C++ Множественное наследование
C++ Множественное наследование
C++ Множественное наследование

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KuKu
1554 / 1032 / 75
Регистрация: 17.04.2009
Сообщений: 2,971
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     ООР множественное определение конструктора
Ответ Создать тему
Опции темы

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