0 / 0 / 0
Регистрация: 22.03.2011
Сообщений: 7
1

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

24.05.2011, 22:10. Показов 3339. Ответов 6
Метки нет (Все метки)

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


что тут вообще надо сделать?? объясните словами!!!!
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.05.2011, 22:10
Ответы с готовыми решениями:

Создать иерархию классов вектор(longint) и безопасный вектор с проверкой выхода за пределы
Помогите не знаю как сделать! Создать иерархию классов вектор(longint) и безопасный вектор с...

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

Класс "вектор" с конструкторами, позволяющими создать нулевой вектор и вектор с произвольным числом элементов
Привет! Задача следующая. Нужно реализовать класс "вектор" с конструкторами, которые позволяют...

Разработать иерархию классов Вектор, Матрицы, "Крамер"
1. Создать пространство имен Algebra. 2. Разработать класс Vector для манипуляции с векторами...

6
Эксперт С++
1067 / 846 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
24.05.2011, 22:15 2
В программировании нет королевских дорог...
Написано же словами...
Создайте класс для вектора.
Создайте класс-наследник для безопасного вектора.
Напишите конструктор копирования, напишите операцию присваивания.
Все - словами...

Не по теме:

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

0
Каратель
Эксперт С++
6606 / 4025 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
24.05.2011, 22:15 3
класс вектор - класс содержащий массив и методы по работе с массивом
безопасный вектор - тоже самое только, добавить проверку
Цитата Сообщение от koroleva Посмотреть сообщение
выхода за пределы
0
0 / 0 / 0
Регистрация: 22.03.2011
Сообщений: 7
24.05.2011, 22:20  [ТС] 4
Цитата Сообщение от Maxwe11 Посмотреть сообщение
проверку
какую проверку?? я не понимаю((((((((
0
Эксперт С++
1067 / 846 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
24.05.2011, 22:51 5
Цитата Сообщение от koroleva Посмотреть сообщение
какую проверку?? я не понимаю((((((((
Проверку "Вылет за границу". Индексы проверять надо!
0
0 / 0 / 0
Регистрация: 22.03.2011
Сообщений: 7
25.05.2011, 00:19  [ТС] 6
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Проверку "Вылет за границу". Индексы проверять надо!
какие индексы??(((((((
можете пример показать???

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

в четверг программу сдавать((((((((((((((
0
В астрале
Эксперт С++
8045 / 4802 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
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';
    }
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2011, 01:52
Помогаю со студенческими работами здесь

Как заполнить вектор на вектор классов
#include &lt;iostream&gt; #include &lt;vector&gt; class Num { private: int m_num; public: Num(int...

Создать вектор классов
у меня имеется класс с конструктором мне необходимо создать несколько объектов этого класса, так...

Матрица и вектор. Создать вектор, содержащий количество отрицательных элементов каждого столбца
Создать вектор М, т.е. одно мерный массив, содержащий количество отрицательных элементов каждого...

Дан целочисленный вектор А(12), среди его элементов есть одинаковые. Создать вектор В из различных элементов вектора А
Дан целочисленный вектор А(12), среди его элементов есть одинаковые. Создать вектор В из различных...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru