Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дан массив а, состоящий из 10 целых чисел Ребятки,помогите пожалуйста решить такие задачи на чистом С. 1. Дан массив а, состоящий из 10 целых чисел. Определить, сколько раз повторяется наибольшее значение, вывести порядковые номера... https://www.cyberforum.ru/ cpp-beginners/ thread355076.html C++ Разработать программу, проверяющую правильность написания отдельных слов
Имеется некоторый файл с текстом и файл содержащий отдельные слова (словарь). Разработать программу, проверяющую правильность написания отдельных слов, а в случае необходимости добавляющие отдельные...
C++ числа Если сумма трех попарно-различный действительных чисел x, y,z, меньше единицы, то наименьшее из этих трех чисел заменить полусуммой двух других, в противном случаи заменить меньшее из x, y,... https://www.cyberforum.ru/ cpp-beginners/ thread355064.html C++ Передача в функцию элементов структуры https://www.cyberforum.ru/ cpp-beginners/ thread355043.html
Всем доброго времени суток! Подскажите пожалуйста как передать элементы структуры в функцию.Задача следующая есть структура данных: struct Month { char Mon ; int Day; };
C++ Curl, Useragent
как в curl передавать "настоящий" useragent? на php так: $_SERVER а на с++? ... curl_easy_setopt(curl,CURLOPT_USERAGENT,настоящий_юзерагент); ... Добавлено через 26 минут ау, никто не знает?...
C++ Очистить файл https://www.cyberforum.ru/ cpp-beginners/ thread355017.html
Здравствуйте Перед использованием нужно очистить файл..он 100% будет не пустой в данной ветке std::cout<<"input new pass"; std::cin >> pass; //file.trunc(); file<<pass;...
C++ Вызов методов предка Привет! Подскажите, как в классе-потомке вызвать метод предка, например, если методы потомка и предка имеют одинаковые имена. Когда я программировал в Delphi, там было зарезервированное слово... https://www.cyberforum.ru/ cpp-beginners/ thread355016.html Как скопировать файлы с флешки в Dev c++? C++
Друзья, подскажите пожалуйста! Нужна программа, которая будет осуществлять копирование файлов с флэшки на диск при ее подключении. Или хотя бы программу копирующую файлы из одного места диска в...
C++ C++.Передача и приём массива функцией. Здравствуйте.Функция board инициализирует двумерный массив и передаёт его в функцию main.Компилируется без ошибок,но при запуске программа вылетает - тобишь она не работает.В чём проблема? ... https://www.cyberforum.ru/ cpp-beginners/ thread354990.html C++ Poker Даны 5 целых чисел. Среди них: если одинаковы 5, то вывести "Impossible", иначе если одинаковы 4, то вывести "Four of a Kind", иначе если одинаковы 3 и 2, то вывести "Full House", иначе если... https://www.cyberforum.ru/ cpp-beginners/ thread354976.html
C++ Number of days in a year
Given a year number. Output the number of days of that year. Example: Input: 1900 Output 365 Example: Input:
C++ Calculation using sin() and loops Given natural number n. Calculate the expression shown on image http://i047.***********/1109/e3/f44c6963cfb7.png Note that sin() function accepts values of type double. Example: Input: ... https://www.cyberforum.ru/ cpp-beginners/ thread354970.html
Avterpa
0

наследование в С++ - C++ - Ответ 2005591

22.09.2011, 18:52. Показов 1266. Ответов 1
Метки (Все метки)

Добрый вечер. относительно недавно мною была получена задача, а точнее несколько задач в одной...И как это ни печально звучит, проблемы возникли ещё на стадии осознания "А что от меня хотят?"
текст задачи выглядит так "
1.Одиночное наследование
Задание 1. Иерархия
Создать класс список, стек, очередь. Определить функции печати, конструкторы и деструкторы.
Задание 2. Композиция и иерархия
Создать классы полка, стеллаж, шкаф. Составить из них иерархию или композицию.
№2. Виртуальные функции
Создать базовый класс список и производные классы стек и очередь. Определить функцию удаления элемента в стек и очередь и удалите элемент из всех стеков и очередей, имеющихся в вашей программе.
№3. Множественное наследование
Создать иерархию типов - здание, одноэтажные здания, многоэтажные здания, индивидуальное здание, здание использующееся коллективно, промышленные здания, жилые здания. Классы должны содержать конструкторы, включая, конструктор копирования, виртуальные деструкторы, перегруженные функции вывода в поток и ввода в поток.
"

Пытаясь с проблемами разобраться по очереди я написала три класс
список
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
#pragma once
#include "stdafx.h"
#include <iostream>
#include <fstream>
using namespace std;
 
template<class T>
class List{
private:
    Node*head;  
public:
    List(){head=NULL;};
    List(List & a){
        Node *n;
        n=a.head;
        while (n){
            this->Ladd(n->item);
            n=n->next;
        }
    }
    bool is_empty() {return head==NULL;}
    void Ladd(T a){
        if(head==NULL){
            head=new Node;
            head->item=a;
            head->next=NULL;
        }
        else{
            Node*t=head;
            while(t->next) t=t->next;
            t->next=new Node;
            t->next->item=a;
            t->next->next=NULL;
        }
    }
 
    void print(){
        if(head==0)throw std::string("List is empty!");
        Node*h=head;
        while(h){
            cout<<"\n->"<<h->item;
            h=h->next;
        }
    }
    List & operator =(List & a){
        Node *n;
        while (head){
            n=head->next;
            delete(head);
            head=n;
        }
        n=a.head;
        while (n){
            this->Ladd(n->item);
            n=n->next;
        }
        return *this;   
    }
    ~List(){
        Node *n;
        while (head){
            n=head->next;
            delete(head);
            head=n;
        }
    }
 
};
стек
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
#pragma once
#include "stdafx.h"
#include <iostream>
#include <fstream>
using namespace std;
template<class T>
class steck{
private:
    Node* head;
    Node* tail;
public: 
    steck() { }
 
 
    void print(){
        if(tail==0){
            throw std::string("steck is empty!");
        }
        for(Node* ptr=tail; ptr!=0; ptr=ptr->next)
            std::cout<<ptr->item<<' ';
        std::cout<<'\n';
    }
    void push(T val){
        Node* Temp;
        Temp=new Node;
        Temp->item=val;
        if(tail==0) tail=Temp;
        else {
            Temp->next=tail;
            tail=Temp;
        }
    }
 
    T top(){
        if(tail==0)  throw std::string("steck is empty!");
        return tail->item;
    }
 
    void pop(){
        if(tail==0)throw std::string("steck is empty!");
        Node* delptr=tail;
        tail=tail->next;
        delete delptr;
    }
 
    bool isEmpty(){return top<0;}
    ~steck(void){
        delete tail;
        delete head;
    }
};

и очередь
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
#pragma once
#include "stdafx.h"
#include <iostream>
#include <fstream>
using namespace std;
template<class T>
class queue{
private:
    Node* head;
    Node* tail;
public:
    queue() {  }
    ~queue() {
        delete head;
        delete tail;
    }
 
    void enqueue(T val) {
        Node* Temp=new Node;
        Temp->item=val;
        if(head==0) {
            head=Temp;
            tail=Temp;
            return;
        }
        tail->next=Temp;
        tail=Temp;
    }
 
    void dequeue() {
        if (item,())  throw std::string("queue is empty");
        Node* delPtr=head;
        std::cout<<"Element "<< head->item <<" is deleted from the queue\n";
        head=head->next;
        delete delPtr;
    }
 
    const T& front() const{
        if (empty()) throw std::string("queue is empty");
        return head->item;
    }
 
    void print() const {
        if (empty())throw std::string("queue is empty");
        for(Node* ptr=head; ptr!=0; ptr=ptr->next)
            std::cout<<ptr->item<<' ';
        std::cout<<'\n';
    }
 
    bool empty() const {return head==0;}
};
ну и структуру Node
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
template<class T>
struct Node
{
    T item;
    Node * next;    
    Node(){};
    Node(Node&a){
        item=a.item;
        next=a.next;
    }
    void Node::setitem(T a){
        item=a;}
    void Node::setnext(Node a){
        next=&a;}
    Node & operator =(Node &a){
        while(this->next){
 
            Node*b=this->next;
            delete this;
            this->item=b->item;
            this->next=b->next;
        }
        if(this==&a) return *this;
        this->item = a.item;
        this->next = a.next;
        return *this;
    }
 
};
в корректности которых я не сильно уверена... и вцелом не особо осознаю, что далее с ними творить..
готова выслушать критику по поводу написанного...
и помощь в облегчение понимания написание требуемого.. буду искренне благодарна за любую корректную помощь)

Вернуться к обсуждению:
наследование в С++ C++
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.09.2011, 18:52
Готовые ответы и решения:

Заменить наследование классов на наследование интерфейсов
#include &lt;iostream&gt; #include &lt;assert.h&gt; using namespace std; int people_on_base = 100; int...

наследование
добрый день, вопрос в следующем : #include &lt;iostream&gt; using namespace std; class A{ ...

Наследование
Добрый день. Мне нужно реализовать такую структуру классов: есть класс 1, от него наследуются три...

Наследование
Добрый вечер! Ребята, почему в данном примере #include &lt;iostream&gt; using namespace std; ...

1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.09.2011, 18:52
Помогаю со студенческими работами здесь

Наследование
Создать класс CPoint – точка. На его основе создать классы CcoloredPoint и CLine. На основе ...

наследование
Как наследовать классы с использованием виртуальных функций? Можете привести пример?

наследование С++
Здравствуйте) опять обращаюсь к вам за помощью)) Дано задание: Описать базовый класс CStr –...

Наследование
Наследование 1)Должна быть табличка 3*3 2)Разные типы наследования 3)программа в в которой будет...

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