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

Создать иерархию классов вектор и безопасный вектор с проверкой выхода за пределы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
koroleva
 Аватар для koroleva
0 / 0 / 0
Регистрация: 22.03.2011
Сообщений: 7
24.05.2011, 22:10     Создать иерархию классов вектор и безопасный вектор с проверкой выхода за пределы #1
Создать иерархию классов вектор и безопасный вектор с проверкой выхода за пределы. Безопасный вектор определяет переменные нижний и верхний предел Переопределить вывод в поток и ввод из потока, конструктор копирования, оператор присваивания через соответствующие функции базового класса.


что тут вообще надо сделать?? объясните словами!!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2011, 22:10     Создать иерархию классов вектор и безопасный вектор с проверкой выхода за пределы
Посмотрите здесь:

C++ Создать иерархию классов вектор(longint) и безопасный вектор с проверкой выхода за пределы
C++ Создать иерархию классов корабль – пассажирский пароход
C++ Создать иерархию классов датчик
Не получается создать иерархию классов C++
C++ Создать вектор классов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
24.05.2011, 22:15     Создать иерархию классов вектор и безопасный вектор с проверкой выхода за пределы #2
В программировании нет королевских дорог...
Написано же словами...
Создайте класс для вектора.
Создайте класс-наследник для безопасного вектора.
Напишите конструктор копирования, напишите операцию присваивания.
Все - словами...

Не по теме:

Наш преподаватель по алгебре много лет назад предупреждал нас: занимайтесь ежедневно. Иначе через две недели наступит такое состояние, что на лекции все слова в ОТДЕЛЬНОСТИ будут понятны, в все ВМЕСТЕ - никак нет...

Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.05.2011, 22:15     Создать иерархию классов вектор и безопасный вектор с проверкой выхода за пределы #3
класс вектор - класс содержащий массив и методы по работе с массивом
безопасный вектор - тоже самое только, добавить проверку
Цитата Сообщение от koroleva Посмотреть сообщение
выхода за пределы
koroleva
 Аватар для koroleva
0 / 0 / 0
Регистрация: 22.03.2011
Сообщений: 7
24.05.2011, 22:20  [ТС]     Создать иерархию классов вектор и безопасный вектор с проверкой выхода за пределы #4
Цитата Сообщение от Maxwe11 Посмотреть сообщение
проверку
какую проверку?? я не понимаю((((((((
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
24.05.2011, 22:51     Создать иерархию классов вектор и безопасный вектор с проверкой выхода за пределы #5
Цитата Сообщение от koroleva Посмотреть сообщение
какую проверку?? я не понимаю((((((((
Проверку "Вылет за границу". Индексы проверять надо!
koroleva
 Аватар для koroleva
0 / 0 / 0
Регистрация: 22.03.2011
Сообщений: 7
25.05.2011, 00:19  [ТС]     Создать иерархию классов вектор и безопасный вектор с проверкой выхода за пределы #6
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Проверку "Вылет за границу". Индексы проверять надо!
какие индексы??(((((((
можете пример показать???

Добавлено через 27 минут
помогите(((

в четверг программу сдавать((((((((((((((
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2011, 01:52     Создать иерархию классов вектор и безопасный вектор с проверкой выхода за пределы
Еще ссылки по теме:

Создать иерархию классов Шахматная фигура – абстрактный класс, содержащий поле – цвет. Создать производные классы C++
C++ Нужно реализовать класс "вектор" с конструкторами, которые позволяют создать нулевой вектор и вектор с произвольным кол-во элементов.
C++ Создать иерархию классов язык с++

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

Или воспользуйтесь поиском по форуму:
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
25.05.2011, 01:52     Создать иерархию классов вектор и безопасный вектор с проверкой выхода за пределы #7
Что-то вроде


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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#include <iostream>
 
template<class T>
class vector
{
public:
    vector():
      arr(0), size(0)
      {
      }
    vector(size_t sz):
      size(sz), arr(new T[sz])
      {
      }
    vector(const vector& other):arr(new T[other.size]), size(other.size)
    {
        for(size_t i = 0; i < other.size; ++i)
            arr[i] = other.arr[i];
    }
    ~vector()
    {
        delete[] arr;
    }
    vector& operator =(const vector& other)
    {
        vector temp(other);
        swap(temp);
        return *this;
    }
    T& operator [](size_t idx)
    {
        return arr[idx];
    }
    const T& operator [](size_t idx) const
    {
        return arr[idx];
    }
    template<class T2>
    friend std::ostream& operator <<(std::ostream& os, const vector<T2>& vec)
    {
        os << "Size: " << vec.size << '\n';
        for(size_t i = 0; i < vec.size; ++i)
            os << vec.arr[i] << ' ';
        os << '\n';
    }
    template<class T2>
    friend std::istream& operator >>(std::istream& is, vector<T2>& vec)
    {
        for(size_t i = 0; i < vec.size(); ++i)
            is >> vec.arr[i];
    }
    size_t getSize() const {return size;}
protected:
    void swap(const vector& other)
    {
        std::swap(arr, other.arr);
        std::swap(size, other.size);
    }
    void print(std::ostream& os)
    {
        os << *this;
        return os;
    }
    void input(std::istream& is)
    {
        is >> *this;
        return is;
    }
    T* arr;
    size_t size;
};
 
template<class T>
class vector_safe:public vector<T>
{
public:
    vector_safe(size_t l_idx, size_t u_idx):vector<T>(), lower_idx(l_idx),
        upper_idx(u_idx)
    {
    }
    vector_safe(size_t sz, size_t l_idx, size_t u_idx):vector<T>(sz), lower_idx(l_idx),
        upper_idx(u_idx)
    {
    }
    vector_safe(const vector_safe& other):vector<T>(other),
        lower_idx(other.lower_idx), upper_idx(other.upper_idx)
    {
    }
    vector_safe& operator =(const vector_safe& other)
    {
        vector_safe tmp(other);
        swap(tmp);
        return *this;
    }
    template<class T2>
    friend std::ostream& operator <<(std::ostream& os, const vector_safe<T2>& vec)
    {
        vec.print(os);
        os << vec.lower_idx << ' ' << vec.upper_idx << '\n';
        return os;
    }
    template<class T2>
    friend std::istream& operator >>(std::istream& is, vector_safe<T2>& vec)
    {
        vec.input(is);
        is >> vec.lower_idx >> vec.upper_idx;
        return is;
    }
    T& operator [](size_t idx)
    {
        if(idx < lower_idx || idx > upper_idx)
            throw std::runtime_error("idx < lower_idx || idx > upper_idx");
        return arr[idx];
    }
    const T& operator [](size_t idx) const
    {
        if(idx < lower_idx || idx > upper_idx)
            throw std::runtime_error("idx < lower_idx || idx > upper_idx");
        return arr[idx];
    }
private:
    void swap(const vector_safe& other)
    {
        vector<T>::swap(other);
        std::swap(lower_idx, other.lower_idx);
        std::swap(upper_idx, other.upper_idx);
    }
    size_t lower_idx;
    size_t upper_idx;
};
 
int main()
{
    vector_safe<int> vec(5, 0, 3);
    try
    {
        vec[0] = 0;
        vec[1] = 1;
        vec[2] = 2;
        vec[3] = 3;
        for(size_t i = 0; i < vec.getSize(); ++i)
            std::cout << vec[i] << '\n';
    }
    catch(const std::runtime_error& e)
    {
        std::cerr << e.what() << '\n';
    }
}
Yandex
Объявления
25.05.2011, 01:52     Создать иерархию классов вектор и безопасный вектор с проверкой выхода за пределы
Ответ Создать тему
Опции темы

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