11 / 12 / 8
Регистрация: 16.11.2016
Сообщений: 892
1

Определить в классе статическую компоненту - указатель на начало связанного списка объектов и функцию просмотра списка

17.11.2017, 08:52. Показов 3664. Ответов 5
Метки нет (Все метки)

Помогите пожалуйста доделать программу. Необходимо определить в классе статическую компоненту - указатель на начало связанного списка объектов и статическую функцию для просмотра списка.
Я не знаю как это сделать. Помогите пожалуйста.
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
static bool Drink_Milk = true;
class Animals
{
protected:
 
    int Size;
    int Limbs;                     //кол-во конечностей
    string Whence;                 //откуда
    string Int_Color;              //основной цвет/окраска
    bool Flies;
 
public:
    Animals::Animals(int size, int limbs, string whence, string int_color, bool flies)
    {
        Size = size;
        Limbs = limbs;      
        Whence = whence;
        Int_Color = int_color;
        Flies = flies;
        cout << "constr" << endl<<endl;
    }
 
    Animals::~Animals()
    {
        cout << "Destr working" << endl<<endl;
    }
 
    virtual void Show()
    {
        cout << "Size;   " << Animals::Size << endl;
        cout << "number of limbs;   " << Animals::Limbs << endl;
        cout << "Where are he now?   " << Animals::Whence << endl;
        cout << "Int color;   " << Animals::Int_Color << endl;
        cout << "This animal flies?   ";
        if (Animals::Flies == 1)
        {
            cout << "Yes" << endl;
        }
        else
        {
            cout << "No" << endl;
        }
        cout << endl << endl;
    };
};
 
class Birds : public Animals {
public:
    bool Fly_away_in_winter;
    Birds(int size, int limbs, string whence, string int_color, bool flies, bool fly_away_in_winter)
        : Animals(size, limbs, whence, int_color, flies)
    {
        Fly_away_in_winter = fly_away_in_winter;
    }
        void Show()
        {
            cout << "Size;   " << Animals::Size << endl;
            cout << "number of limbs;   " << Animals::Limbs << endl;
            cout << "Where are he now?   " << Animals::Whence << endl;
            cout << "Int color;   " << Animals::Int_Color << endl;
            cout << "This animal flies?   ";
            if (Animals::Flies == 1)
            {
                cout << "Yes" << endl;
            }
            else
            {
                cout << "No" << endl;
            }
            cout << "This bird fly away in winter?   ";
            if (Birds::Fly_away_in_winter == 1)
            {
                cout << "Yes" << endl;
            }
            else
            {
                cout << "No" << endl;
            }
            cout << endl << endl;
        };
};
 
class Mammals : public Animals {                 
public:
    static bool Drink_Milk;
    Mammals(int size, int limbs, string whence, string int_color, bool flies)
        : Animals(size, limbs, whence, int_color, flies)
    {
    }
    void Show()
    {
        cout << "Size;   " << Animals::Size << endl;
        cout << "number of limbs;   " << Animals::Limbs << endl;
        cout << "Where are he now?   " << Animals::Whence << endl;
        cout << "Int color;   " << Animals::Int_Color << endl;
        cout << "This animal flies?   ";
        if (Animals::Flies == 1)
        {
            cout << "Yes" << endl;
        }
        else
        {
            cout << "No" << endl;
        }
        cout << "Drink Milk?   Yes" << endl << endl;
    }
};
 
class Artiodactyls : public Mammals {        //парнокопытные
public:
    Artiodactyls(int size, int limbs, string whence, string int_color, bool flies)
        : Mammals(size, limbs, whence, int_color, flies)
    {
    }
    void Show()
    {
        cout << "Size;   " << Animals::Size << endl;
        cout << "number of limbs;   " << Animals::Limbs << endl;
        cout << "Where are he now?   " << Animals::Whence << endl;
        cout << "Int color;   " << Animals::Int_Color << endl;
        cout << "This animal flies?   ";
        if (Animals::Flies == 1)
        {
            cout << "Yes" << endl;
        }
        else
        {
            cout << "No" << endl;
        }
        cout << "Drink Milk?   Yes" << endl << endl;
    }
};
 
int main()
{
    Animals *Ringo=new Animals(2, 4, "Africa", "gray", false);
    cout << "Ringo" << endl;
    Ringo->Show();
    delete Ringo;
 
    Birds Eagle(1, 4, "Russia, Spain, Romania", "brown", true, true);
    cout << "Eagle" << endl;
    Eagle.Show();
 
    Mammals Bear(2, 4, "Russia, Europe", "Brown", false);
    cout << "Bear" << endl;
    Bear.Show();
 
    //Mammals Brown_bear(2 , 4, "Russia, Europe", "brown", false);
 
    Artiodactyls Giraffe(6, 4, "Africa", "Yellow", false);
    cout << "Giraffe" << endl;
    Giraffe.Show();
 
    system("pause");
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.11.2017, 08:52
Ответы с готовыми решениями:

Создать функцию, результатом которой вернуть указатель на начало списка
Никак не могу понять, как создать такой список... и как лучше перебрать данные из файла. Дан...

Удалить из списка все элементы с нечётными значениями и вывести указатель p2 на начало преобразованного списка.
Здравствуйте. Не получается решить задачу. Условие. Дан непустой двусвязный список. Удалить из ...

Получить указатель на элемент двунаправленного списка, добавить значение в начало списка и очистить его
Нужно создать двунаправленный список //вроде так, но не уверен struct Double_List {//структура...

Даны числа D1 и D2 и указатель P0 на один из элементов непустого двусвязного списка. Добавить в начало списка новый
Даны числа D1 и D2 и указатель P0 на один из элементов непустого двусвязного списка. Добавить в...

5
7275 / 6220 / 2833
Регистрация: 14.04.2014
Сообщений: 26,871
17.11.2017, 09:26 2
В каком классе и где список?
0
11 / 12 / 8
Регистрация: 16.11.2016
Сообщений: 892
18.11.2017, 14:38  [ТС] 3
Так я не понял задание, мне придётся переделывать программу так, чтобы данные класса были представленны в виде списка?
П.с. но я не смог сделать статическую функцию так, чтобы она просматривалла не только класс Animals , но и его наследников. Помогите, как это сделать?
0
7275 / 6220 / 2833
Регистрация: 14.04.2014
Сообщений: 26,871
18.11.2017, 14:41 4
Где эта функция? В самом списке? У тебя его нет.
1
11 / 12 / 8
Регистрация: 16.11.2016
Сообщений: 892
21.11.2017, 08:44  [ТС] 5
Цитата Сообщение от nmcf Посмотреть сообщение
Где эта функция?
Для просмотра нет, я и прошу написать её. Как я понимаю надо одну функцию для просмотра всех элементов в классе Animals и классах-наследников.
Цитата Сообщение от nmcf Посмотреть сообщение
где список?
В строках 15, 16 добавил на начало списка указатель и на след. объект для Animals, разве не так?
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
static bool Drink_Milk = true;
class Animals
{
protected:
 
    int Size;
    int Limbs;                     //кол-во конечностей
    string Whence;                 //откуда
    string Int_Color;              //основной цвет/окраска
    bool Flies;
    static Animals *first;
    Animals *next;
 
public:
    Animals::Animals(int size, int limbs, string whence, string int_color, bool flies)
    {
        Size = size;
        Limbs = limbs;      
        Whence = whence;
        Int_Color = int_color;
        Flies = flies;
        cout << "constr" << endl<<endl;
    }
 
    Animals::~Animals()
    {
        cout << "Destr working" << endl<<endl;
    }
 
    virtual void Show()
    {
        cout << "Size;   " << Animals::Size << endl;
        cout << "number of limbs;   " << Animals::Limbs << endl;
        cout << "Where are he now?   " << Animals::Whence << endl;
        cout << "Int color;   " << Animals::Int_Color << endl;
        cout << "This animal flies?   ";
        if (Animals::Flies == 1)
        {
            cout << "Yes" << endl;
        }
        else
        {
            cout << "No" << endl;
        }
        cout << endl << endl;
    };
};
 
class Birds : public Animals {
public:
    bool Fly_away_in_winter;
    Birds(int size, int limbs, string whence, string int_color, bool flies, bool fly_away_in_winter)
        : Animals(size, limbs, whence, int_color, flies)
    {
        Fly_away_in_winter = fly_away_in_winter;
    }
        void Show()
        {
            cout << "Size;   " << Animals::Size << endl;
            cout << "number of limbs;   " << Animals::Limbs << endl;
            cout << "Where are he now?   " << Animals::Whence << endl;
            cout << "Int color;   " << Animals::Int_Color << endl;
            cout << "This animal flies?   ";
            if (Animals::Flies == 1)
            {
                cout << "Yes" << endl;
            }
            else
            {
                cout << "No" << endl;
            }
            cout << "This bird fly away in winter?   ";
            if (Birds::Fly_away_in_winter == 1)
            {
                cout << "Yes" << endl;
            }
            else
            {
                cout << "No" << endl;
            }
            cout << endl << endl;
        };
};
 
class Mammals : public Animals {                 
public:
    static bool Drink_Milk;
    Mammals(int size, int limbs, string whence, string int_color, bool flies)
        : Animals(size, limbs, whence, int_color, flies)
    {
    }
    void Show()
    {
        cout << "Size;   " << Animals::Size << endl;
        cout << "number of limbs;   " << Animals::Limbs << endl;
        cout << "Where are he now?   " << Animals::Whence << endl;
        cout << "Int color;   " << Animals::Int_Color << endl;
        cout << "This animal flies?   ";
        if (Animals::Flies == 1)
        {
            cout << "Yes" << endl;
        }
        else
        {
            cout << "No" << endl;
        }
        cout << "Drink Milk?   Yes" << endl << endl;
    }
};
 
class Artiodactyls : public Mammals {        //парнокопытные
public:
    Artiodactyls(int size, int limbs, string whence, string int_color, bool flies)
        : Mammals(size, limbs, whence, int_color, flies)
    {
    }
    void Show()
    {
        cout << "Size;   " << Animals::Size << endl;
        cout << "number of limbs;   " << Animals::Limbs << endl;
        cout << "Where are he now?   " << Animals::Whence << endl;
        cout << "Int color;   " << Animals::Int_Color << endl;
        cout << "This animal flies?   ";
        if (Animals::Flies == 1)
        {
            cout << "Yes" << endl;
        }
        else
        {
            cout << "No" << endl;
        }
        cout << "Drink Milk?   Yes" << endl << endl;
    }
};
 
int main()
{
    Animals *Ringo=new Animals(2, 4, "Africa", "gray", false);
    cout << "Ringo" << endl;
    Ringo->Show();
    delete Ringo;
 
    Birds Eagle(1, 4, "Russia, Spain, Romania", "brown", true, true);
    cout << "Eagle" << endl;
    Eagle.Show();
 
    Mammals Bear(2, 4, "Russia, Europe", "Brown", false);
    cout << "Bear" << endl;
    Bear.Show();
 
    //Mammals Brown_bear(2 , 4, "Russia, Europe", "brown", false);
 
    Artiodactyls Giraffe(6, 4, "Africa", "Yellow", false);
    cout << "Giraffe" << endl;
    Giraffe.Show();
 
    system("pause");
    return 0;
}
0
7275 / 6220 / 2833
Регистрация: 14.04.2014
Сообщений: 26,871
21.11.2017, 18:58 6
Ну если тебе так надо. Только first в секцию public перенеси.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.11.2017, 18:58
Помогаю со студенческими работами здесь

Создание списка, печать списка на экран, добавления элемента в начало списка, конец списка
Построить динамическую структуру типа список . Необходимо реализовать следующие процедуры: 1....

Написать функцию сортировки связанного списка
Заранее спасибо!

Проверить функцию удаления элемента из двунаправленного связанного списка . unittest - том
Есть двунаправленный связанный список удаляем из него элемент нужно проверить unittest - том ...

Используя производные классы, определить класс параметризованного списка одного из следующих типов. Применить его для построения списка объектов указа
Используя производные классы, определить класс параметризованного упорядоченного списка. Применить...

Используя статическую компоненту класса подсчитать количество созданных в программе объектов
Задание: Используя статическую компоненту класса подсчитать количество созданных в программе...

Как наиболее быстро определить зацикливание связанного списка? (a => b => c => d => e => a)
You have a pointer to some element in a linked list (a =&gt; b =&gt; c =&gt; d =&gt; e). What is the fastest...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru