Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Sammm
3 / 3 / 5
Регистрация: 21.10.2012
Сообщений: 182
#1

Наследование классов

12.11.2013, 00:20. Просмотров 238. Ответов 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 ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2013, 00:20
Ответы с готовыми решениями:

Заменить наследование классов на наследование интерфейсов
#include <iostream> #include <assert.h> using namespace std; int...

Наследование классов. Копирование производных классов
Здравствуйте всем, у меня такой вопрос: написал код #include "stdafx.h" ...

наследование классов
Помогите, пожалуйста. как соотносяться между собой размеры экземпляров базового...

Наследование классов
Реализовать класс, содержащий коллекцию объектов, методы для ...

Наследование классов
Доброго всем времени суток! Подскажите, куда надо положить свой базовый...

1
MrGluck
Модератор
Эксперт CЭксперт С++
8054 / 4898 / 1426
Регистрация: 29.11.2010
Сообщений: 13,297
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];
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2013, 01:00

Наследование классов
В общем, стоит задача: Ввести текст из 12 строк, далее его отредактировать по...

Наследование классов!
Помогите с задачей!немного закрутила Описать класс студент,который содержит...

Наследование классов
смотрите, типа класс комп и ноут вроде все хорошо работает, но с табуляцией...


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

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

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