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

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

Восстановить пароль Регистрация
 
Sherh@n
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 4
06.04.2014, 12:42     Производный класс и наследование #1
Доброго времени суток! Помогите выполнить задание, пожалуйста!

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

Я написал базовый класс, вот так он выглядит:
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;
    }
};
Помогите, пожалуйста! В среду сгорает задание
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2014, 12:42     Производный класс и наследование
Посмотрите здесь:

Есть производный класс и базовый; при чём производный использует только ЧАСТЬ ресурсов базового, правильно ли это? C++
C++ Наследование, получить производный класс "интервал времени"
C++ Создать базовый класс - Array и производный класс - Money для работы денежной суммы
Указатели в базовом классе на базовый класс и производный класс C++
Разработать класс Man (человек) и производный класс Student (студент). Описать атрибуты. C++
C++ Разработать класс Tableware (посуда) и производный класс Dish (тарелка). Описать атрибуты
C++ Разработать производный от абстрактного класса Figure класс и класс, производный от производного
C++ Написать класс строка и производный класс, ее шифрующий

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 22:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru