Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 18.12.2015
Сообщений: 29
1

Виртуальные методы

13.05.2016, 23:01. Показов 738. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Не могу разобраться как тут создать два класса, один из которых работает с битовыми строками, а другой по условию работает, как в турбо паскале, а как там сделано - я даже не понимаю. Потом ещё в довесок нужно виртуальный метод сложения массивов реализовать, здесь я не понимаю не как работает сам метод, а то что как складывать массивы внутри метода.

Задание

Создать базовый класс Array с полями: массив типа unsigned char и поле для хранения количества элементов у текущего объекта-массива. Максимально возможный размер массива задается статической константой. Реализовать конструктор инициализации, задающий количество элементов и начальное значение (по умолчанию 0). Реализовать метод доступа к элементу, перегрузив операцию индексирования []. При этом должна выполняться проверка индекса на допустимость.
Реализовать в классе Array виртуальную функцию поэлементного сложения массивов. Реализовать два класса(BitString и String, см. ниже), переопределив виртуальную функцию сложения. Вызывающая программа должна продемонстрировать все варианты вызова виртуальных функций.
Создать класс BitString (Класс для работы с битовыми строками не более чем из 100 бит. Битовая строка должна быть представлена массивом типа unsigned char, каждый элемент которого принимает значение 0 или 1.) и класс String (Класс для работы со строками, аналогичными строками Turbo Pascal (строка представляется как массив 255 байт, длина - в первом байте). Максимальный размер строки должен задаваться.).

Вот, что у меня получилось на текущий момент:
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
#include <iostream>
#include <conio.h>
 
using namespace std;
 
class Array {
public:
    unsigned char *mass;
    int elem;
    static const int n=2;
 
    Array(){
        mass = new unsigned char [10];
        for (int i=0; i<n; i++) {
        mass [i] = 0;
    }
    elem=2;
    }
 
    int operator [] (int i) {
        if (i > elem) {
            cout << "Индекс недопустим";
        }
        else
            return mass [i];
    }
    virtual void Substr()=0;
};
 
class BitString : public Array{
public:
    BitString(): Array(){}
    BitString(int z){
        char bit[100];
        cin >> bit;
        elem = strlen(bit);
        mass = new unsigned char[elem+1];
        for(int i=0;i<elem+1;i++){
            mass[i]=bit[i];
            }
    }
    void Substr();
};
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.05.2016, 23:01
Ответы с готовыми решениями:

Виртуальные методы
...в голове не укладываются. Помогите кто может :confusion: У меня про них сложилось...

Виртуальные методы
Всем доброго времени суток! Вопрос следующий. Как я могу функцией делать подмену виртуального...

Виртуальные методы
Дан родительский класс Animal (поле кличка). И два наследованных от него класса-потомка: Cat (поле...

Виртуальные методы
Здраствуйте , вот писал виртуальный метод доступа но почему то не получаеться , подскажите почему...

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

Виртуальные методы
народ вот пример с виртуальными методами, и вывод этой программы class Ancestor { public: ...

виртуальные методы
#include&lt;iostream&gt; #include&lt;stdlib.h&gt; using namespace std; class MArray { protected:...

виртуальные методы
как вызвать виртуальный метод базового класса из наследуемого класса? struct A { virtual void...

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru