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

Производный класс и наследование

06.04.2014, 12:42. Показов 988. Ответов 0
Метки нет (Все метки)

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

Само задание:
Базовый класс – массив чисел, производный класс – массив дат, представленных тройками чисел: день, месяц, год.
Определите в нем конструктор, деструктор, конструктор копирования, оператор присваивания.
Переопределите операции вставки, удаления элемента, переопределите операции [ ], +=, -=.

Я написал базовый класс, вот так он выглядит:
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
class Vector {
 
protected:
int *v; 
int len; 
 
public:
// Конструктор создания массива
Vector(int N=0) : v(0), len(0) { 
    if (N>0) v = new int[N];
    if (v) len = N;
}
// Конструктор копирования – конструктор, создающий объект (типа vector)
// по уже имеющемуся объекту того же класса
Vector(const Vector & temp) : v(0), len(0)
{ if (temp.len>0) v=new int [temp.len];
if ( v ) {
len=temp.len;
for (int i=0;i<len;i++) {v[i]=temp.v[i];}
}
}
// Функция вывода массива
void GetMass()
    {
        for(int i=0; i<len;i++)
        {
            cout<<v[i]<<" ";
        }
        cout<<endl;
    }
// Функция заполнения массива
void ran() {
    for(int i = 0; i < len; i++)
        v[i] = rand()%32;
}
// Функция добавления элемента в массив
void insert(int k) {
    int *t; 
    t = new int [len+1];
    for(int i = 0; i < len; i++)
        t[i] = v[i];
    t[len] = k;
    len++;
    v = t;
};
// Функция удаления элемента
void erase(int k) {
    int *t, i = 0, j = 0;   
    t = new int [len];
    for(i = 0; i < len; i++) {
        if(v[i] != k){
            t[j] = v[i];
            j++;
        }
    }
    len = len - abs(i - j);
    v = t;
};
//=============Перегрузка []==========//
// для использования в левой части присваивания:
int & operator [] (int index)
{ return v[index]; }
 
// для использования в правой части присваивания:
int operator [] (int index) const
{ return v[index]; }
 
//=============Деструктор============//
// Определение деструктора ~имя_класса () {тело деструктора}
~ Vector() { delete [] v; }
};
Но я не понимаю, что делать в производном классе. Я начал его писать, но встал в тупик...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class datavector: public Vector{
public:
    datavector(void) {}
    datavector(int v) : Vector(v) {}
    ~datavector() {}
 
    datavector& operator += (datavector& src) {
        if(len != src.len) return *this;
 
        for(int k = 0; k < src.len/2; k++) {
            int ch = v[2*k] * src.v[2*k + 1] + v[2*k + 1] * src.v[2*k];
            int zn = v[2*k + 1] * src.v[2*k + 1];
            v[2*k] = ch;
            v[2*k + 1] = zn;
        }
        return *this;
    }
};
Помогите, пожалуйста! В среду сгорает задание
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.04.2014, 12:42
Ответы с готовыми решениями:

Наследование: базовый класс Квадрат, производный класс Пирамида
Помогите, пожалуйста!:cry: Добавлено через 6 минут Создать класс КВАДРАТ, член класса- длинна...

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

Наследование классов: почему производный класс не учитывает данные, введенные в базовом?
Почему при компилляции производный класс не учитывает данные, введенные в базовом? #include...

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

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

Наследование, получить производный класс "интервал времени"
Привет. Производный класс состоит из-двух полей. public &amp; private хочу в производном классе...

Есть производный класс и базовый; при чём производный использует только ЧАСТЬ ресурсов базового, правильно ли это?
Ну то есть базовый класс A, с полями, допустим, a, b, c, d. И я проектирую производный класс B и я...

Базовый класс Complex и производный класс для реализации квадратных матриц
1) Создайте базовый класс Complex (комплексное число) для реализации комплексных чисел в...

Создать класс Point и производный класс ColoredPoint (цветная точка)
Создайте класс Point (точка на плоскости), характеризующийся двумя координатами. Создайте...


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

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