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

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

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

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

12.12.2013, 22:40. Просмотров 252. Ответов 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++
C++ Наследование и полиморфизм
C++ Наследование и полиморфизм...
C++ undefined reference
C++ undefined reference to `A::a'
undefined reference to C++
Undefined reference to C++
Наследование, полиморфизм C++
C++ Undefined reference to
C++ Наследование и полиморфизм

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12495 / 7057 / 791
Регистрация: 27.09.2012
Сообщений: 17,437
Записей в блоге: 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 (наследование и полиморфизм)
Ответ Создать тему
Опции темы

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