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

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

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

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

12.12.2013, 22:40. Просмотров 316. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2013, 22:40
Я подобрал для вас темы с готовыми решениями и ответами на вопрос undefined reference (наследование и полиморфизм) (C++):

Странная ошибка: [Linker error] undefined reference to `__dyn_tls_init_callback' [Linker error] undefined reference to ld returned 1 exit status - C++
Здравствуйте. Вот недавно начал изучать книгу &quot;С++ для чайников&quot; Стефан Р. Девис 4-е издание. И напоролся на кучу ошибок) Но смог все...

Undefined reference to - C++
Matrix.h #pragma once #include &lt;iostream&gt; template &lt;typename T&gt; class Matrix { private: int n1, n2; T **mas; public:...

Undefined reference to - C++
Много уже тем создано по даннму вопросу, но решения так и не нашел.. Есть конечно догадки, но как реализовать все равно не знаю. Прошу...

undefined reference to `A::a' - C++
//==========================================================================================================================================...

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

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

1
Croessmah
Ушел
13783 / 8033 / 928
Регистрация: 27.09.2012
Сообщений: 19,804
Записей в блоге: 3
Завершенные тесты: 1
12.12.2013, 22:41 #2
Где реализация конструкторов?
C++
1
Employee(const string& name, int dept);
C++
1
Manager(const string& name, int dept, int lvl);
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2013, 22:41
Привет! Вот еще темы с ответами:

Undefined reference to - C++
Есть класс NavyPort. Его заголовок: #ifndef NAVYPORT_H #define NAVYPORT_H class NavyPort { public: NavyPort(bool...

undefined reference - C++
Пытаюсь разобраться с Box2D. Выпадает куча ошибок типа undefined reference to `b2World::b2World(b2Vec2 const&amp;)'| Box2D.h файл...

Undefined reference to - C++
Помогите, пожалуйста. Нужно было написать программу с использованием шаблона. Появляется ошибка &quot;undefined reference to...

undefined reference - C++
Доброго времени суток! Есть следующий код: #include &lt;iostream&gt; using namespace std; enum direction {Up, Down, Left, Right}; ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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