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

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

Войти
Регистрация
Восстановить пароль
 
landgen
1 / 1 / 0
Регистрация: 20.03.2013
Сообщений: 77
#1

undefined reference (наследование и полиморфизм) - C++

12.12.2013, 22:40. Просмотров 271. Ответов 1
Метки нет (Все метки)

Переписал пример из книги Страуструпа, не компилируется.
Код
/home/hRYviN/ccHyey7P.o: In function `main':
prog.cpp:(.text.startup+0x3c): undefined reference to `Employee::Employee(std::string const&, int)'
prog.cpp:(.text.startup+0x87): undefined reference to `Manager::Manager(std::string const&, int, int)'
collect2: error: ld returned 1 exit status
Сижу, никак не могу понять: а почему не компилируется-то? Всё же объявили вроде бы, как это "андефайнед"?

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
#include <string>
#include <list>
using namespace std;
 
class Employee
{
    string first_name, family_name;
    short department;
    // ...
 public:
    Employee(const string& name, int dept);
    virtual void print() const;
    
};
//----------------------------------------------------
void Employee::print() const
{
    cout << family_name << '\t' << department << '\n';  
}
//----------------------------------------------------
class Manager : public Employee
{
    list<Employee*> group;
    short level;
    //...
 public:
    Manager(const string& name, int dept, int lvl);
    void print() const;
 
};
//----------------------------------------------------
void Manager::print() const
{
    Employee::print();
    cout << "\tlevel" << level << '\n';
    //...
}
//----------------------------------------------------
void print_list (const list<Employee*>& s)
{
    for(list<Employee*>::const_iterator p = s.begin(); p!=s.end(); ++p)
    (*p)->print();
}
//----------------------------------------------------
int main() {
    Employee e ("Brown", 1234);
    Manager m ("Smith", 1234, 2);
    list<Employee*> empl;
    empl.push_front(&e);
    empl.push_front(&m);
    print_list(empl);
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2013, 22:40     undefined reference (наследование и полиморфизм)
Посмотрите здесь:

undefined reference to - C++
http://www.cyberforum.ru/qt/thread861722.html Не в том разделе создал тему, и поэтому даю линк на неё. Описание ошибки там же

Полиморфизм, наследование - C++
Товарищи, кто может, объясните пожалуйста. Просят добавить новый тип объектов Trap. Методы в нем объявлены как виртуальные, но в...

undefined reference to `gzdopen' - C++
Здравствуйте, уважаемые форумчане! Нужна ваша помощь. Среда - Dev-Cpp. Пытаюсь написать программу с использованием zlib. ...

ООП Полиморфизм Наследование - C++
У меня есть базовый класс и 2 производных от него класса... Как сделать, чтобы в программе я мог сделать такое обьявление: Force fc;...

Error undefined reference to `GetStockObject@4 - C++
Какую ему надо либу?

насчет ошибки undefined reference - C++
Изучал тут использование статических переменных написал элементарный класс. компилирую - выдает ошибку undefined reference Помогите...

Undefined reference to. и пространства имён - C++
Стивен Прата, 9-я глава, 4-е упражнение. Компилятор взорвал мозг. Подскажите, пожалуйста, где ошибка: Sales.h #ifndef...

Undefined reference to шаблонная функция - C++
Добрый день. Есть класс с шаблонной функцией:class ItemsPrivate : public QWidget, public Tab { Q_OBJECT public: explicit...

undefined reference to 'std::basic - C++
Братцы выручайте Сейчас с ума сойду... Но сначала исходники main.cpp #include &lt;iostream&gt; #include &lt;fstream&gt; #include...

Полиморфизм и наследование - что это? - C++
Объясните плз как можно проще что значит полиморфизм и наследование? Если второе я более менее понял то с 1 проблема. В интернете не смог...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
13051 / 7314 / 814
Регистрация: 27.09.2012
Сообщений: 18,051
Записей в блоге: 3
Завершенные тесты: 1
12.12.2013, 22:41     undefined reference (наследование и полиморфизм) #2
Где реализация конструкторов?
C++
1
Employee(const string& name, int dept);
C++
1
Manager(const string& name, int dept, int lvl);
Ответ Создать тему
Опции темы

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