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

Наследование классов - C++

Восстановить пароль Регистрация
 
Sammm
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 182
12.11.2013, 00:20     Наследование классов #1
Есть базовый класс:
C++
1
2
3
4
5
class people
{ 
public:
    char *name; 
};
Есть производный класс, который наследуется от базового:
C++
1
2
3
4
5
class worker : public people
{ 
public: 
    char *specialization;
};
Информация сведена в таблицу:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class table_people
{
public:
    Item table[M];
    int n; //текущий размер таблицы
 
    void add_Item(int, people *);
};
 
class Item
{
public:
    int number;
    people *info;
};
Если надо добавить worker добавляю вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
table_people t; 
worker w; 
w.name = "Bob";
w.specialization = "cook";
t.add_Item(5, new worker(w));
 
void table_people::add_Item(int number, people * p) // передается значение worker, а принимается people
{
    table[n].number = number;
    table[n].info = p;
    ++n;
}
Как мне вывести specialization, если можно только table[n].info->name ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2013, 00:20     Наследование классов
Посмотрите здесь:

C++ Наследование классов!
наследование классов C++
наследование классов C++
C++ Наследование классов
Наследование классов C++
C++ Наследование классов
Наследование классов в С++ C++
наследование классов в C++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4923 / 2666 / 243
Регистрация: 29.11.2010
Сообщений: 7,420
12.11.2013, 01:00     Наследование классов #2
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>
 
struct A
{
    int a;
    A()      : a()  {}
    A(int x) : a(x) {}
    virtual ~A()    {}
    virtual void print() const
    {
        std::cout << a << std::endl;
    }
};
 
struct B : public A
{
    int b;
    B()             : A(),  b()  {}
    B(int x, int y) : A(x), b(y) {}
    virtual void print() const
    {
        std::cout << a << ", " << b << std::endl;
    }
};
 
struct C
{
    const static int M = 10;
    A* arr[M];
    static int index;
 
    void add(A* a)
    {
        if (index < M) arr[index++] = a;
    }
    void print() const
    {
        for (int i=0; i < index; i++)
            arr[i]->print();
    }
};
 
int C::index = 0;
 
int main()
{
    C c;
    c.add(new A());
    c.add(new A(1));
    c.add(new B(1, 2));
    c.print();
    for (int i=0; i < c.index; i++)
        delete c.arr[i];
}
Yandex
Объявления
12.11.2013, 01:00     Наследование классов
Ответ Создать тему
Опции темы

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