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

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

Восстановить пароль Регистрация
 
landgen
1 / 1 / 0
Регистрация: 20.03.2013
Сообщений: 77
12.12.2013, 22:40     undefined reference (наследование и полиморфизм) #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 (наследование и полиморфизм)
Посмотрите здесь:

C++ undefined reference...
C++ undefined reference
C++ undefined reference
C++ undefined reference to `A::a'
undefined reference to C++
Undefined reference to C++
C++ Undefined reference to `GrPlot'
C++ Undefined reference to

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11827 / 6806 / 769
Регистрация: 27.09.2012
Сообщений: 16,878
Записей в блоге: 2
Завершенные тесты: 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);
Yandex
Объявления
12.12.2013, 22:41     undefined reference (наследование и полиморфизм)
Ответ Создать тему
Опции темы

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