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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Чем отличается #include <cstring>, #include <string> и #include <string.h>? http://www.cyberforum.ru/cpp-beginners/thread1140201.html
Доброго времени суток :) Пишу свой класс и мне для нужны функции для работы со строками. Когда подключаю #include <string> все что мне нужно работает. Но один раз не заметил и подключил #include <cstring> и в итоге сразу не смог понять в чем проблема, но потом разобрался. Вот хочу узнать чем отличается #include <cstring>, #include <string> и #include <string.h>.
C++ Реестр Написать программу, определяющую значение параметра в открытом разделе и изменяющую это значение на другое. Подскажите пожалуйста, где-то есть похожий пример? http://www.cyberforum.ru/cpp-beginners/thread1140198.html
Является ли введенное длинное цельное простым C++
Помогите пожалуйста с заданием.... Завтра сдавать просто... С клавиатуры ввести длинное цельное натуральное число. Узнать, является ли оно простым. Если нет,то найти наименьшее простое число, которое больше введенного. Подсказка: простыми называются натуральные числа, которые не делятся на другие натуральные числа (кроме 1 и самого себя).
C++ Неправильно сортирует квадратную матрицу порядка n
Неправильно сортирует. Получить квадратную матрицу порядка n, элементами которой являются заданные действительные числа а1, ..., аn, четные строки по убыванию, нечетные по возрастанию. n=4 #include "stdafx.h" #include "iostream" #include "ctime" using namespace std; void main() {
C++ Среди столбцов заданной целочисленной матрицы, заполненной случайными числами, порядка n* n, найти столбец с элементами http://www.cyberforum.ru/cpp-beginners/thread1140183.html
что не так? Среди столбцов заданной целочисленной матрицы, заполненной случайными числами, порядка n* n, найти столбец с элементами небольшими по модулю заданного натурального k #include"stdafx.h" #include"iostream" #include"ctime" using namespace std; void main() { srand(time(NULL));
C++ Flex and bison and VS2010 Вообщем нужно использовать Flex Bison Visual Studio 2010 совместно . Пишу вот такой простой пример %% key cout << " This is very simple example "; %% подробнее

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

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

Я написал базовый класс, вот так он выглядит:
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;
    }
};
Помогите, пожалуйста! В среду сгорает задание
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru