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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Sherh@n
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 4
#1

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

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

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

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

Я написал базовый класс, вот так он выглядит:
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++
Указатель на тип базового класса при открытом наследовании может хранить адрес объекта производного класса. class num { ...

Наследование классов: почему производный класс не учитывает данные, введенные в базовом? - C++
Почему при компилляции производный класс не учитывает данные, введенные в базовом? #include &lt;iostream&gt; using namespace std; ...

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

производный класс - C++
Помогите пожалуйста!!! Не получается сделать задание. Нужно определить производный класс к вспомогательному классу по заданию. В...

производный класс - C++
Помогите пожалуйста!!! имеется класс Triangle выполняющий операции с треугольниками. Задание: нужно образовать производный класс...

Добавить производный класс - C++
Помогите добавить в этот код наследование производный класс реализует Уменьшение каждого элемента массива на 20 с использованием...

Указатель на производный класс - C++
Добрый вечер. Есть вопрос. class Base { }; class Derived : public Base {

Базовый класс и производный... - C++
Есть class A. У него есть функция protected foo(); Есть класс наследник B (class B: public A). В классе-наследнике B есть функция g(),...

производный класс 3D массив - C++
Помогите пожалуйста. На основе класса «Матрица» создать производный класс «3D массив». Класс содержит массив, каждый элемент которого...

Организовать производный класс - C++
Помогите пожалуйста!!! Организовать производный класс, наследующий все свойства базового и дополнительный методы нахождения скалярного...

создать производный класс - C++
Нужно создать динимический массив целых чисел с произвольными (включая и отрицательные) пределами. Использовать виртуальную функцию Как...

Производный класс пирамида - C++
Здравствуйте! Мне надо сдать это задание, а я ни бум бум. Пожалуйста кто может помогите. Заранее благодарю. Задание...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru