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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дан массив а, состоящий из 10 целых чисел http://www.cyberforum.ru/cpp-beginners/thread355076.html
Ребятки,помогите пожалуйста решить такие задачи на чистом С. 1. Дан массив а, состоящий из 10 целых чисел. Определить, сколько раз повторяется наибольшее значение, вывести порядковые номера соответствующих елементов. Упорядочить массив по убыванию. Найти произведение всех элементов аi, для которых верно ai (x, y вводить с клавиатуры). Числа не принадлежащие заданному интервалу...
C++ Разработать программу, проверяющую правильность написания отдельных слов Имеется некоторый файл с текстом и файл содержащий отдельные слова (словарь). Разработать программу, проверяющую правильность написания отдельных слов, а в случае необходимости добавляющие отдельные слова в словарь. Это задание такое. вот есть кусочек программы все что нашел. не могу понять как написать. как сделать чтобы считался с файла текст потом найти слово которое было введено с... http://www.cyberforum.ru/cpp-beginners/thread355066.html
C++ числа
Если сумма трех попарно-различный действительных чисел x, y,z, меньше единицы, то наименьшее из этих трех чисел заменить полусуммой двух других, в противном случаи заменить меньшее из x, y, полусуммой двух оставшихся значений
Передача в функцию элементов структуры C++
Всем доброго времени суток! Подскажите пожалуйста как передать элементы структуры в функцию.Задача следующая есть структура данных: struct Month { char Mon ; int Day; };
C++ Curl, Useragent http://www.cyberforum.ru/cpp-beginners/thread355040.html
как в curl передавать "настоящий" useragent? на php так: $_SERVER а на с++? ... curl_easy_setopt(curl,CURLOPT_USERAGENT,настоящий_юзерагент); ... Добавлено через 26 минут ау, никто не знает? или мой вопрос странный?
C++ Очистить файл Здравствуйте Перед использованием нужно очистить файл..он 100% будет не пустой в данной ветке std::cout<<"input new pass"; std::cin >> pass; //file.trunc(); file<<pass; file.seekg(0, ios::beg); //перемещаемся в начало файла streampos pos; int c=0; while ((c = file.get()) != EOF) //шифруем пока не конец файла подробнее

Показать сообщение отдельно
Avterpa
Сообщений: n/a

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

22.09.2011, 18:52. Просмотров 706. Ответов 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;
    }
 
};
в корректности которых я не сильно уверена... и вцелом не особо осознаю, что далее с ними творить..
готова выслушать критику по поводу написанного...
и помощь в облегчение понимания написание требуемого.. буду искренне благодарна за любую корректную помощь)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru