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

ООП и контейнеры - C++

Восстановить пароль Регистрация
 
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
10.05.2013, 17:48     ООП и контейнеры #1
Здорова господа!
От есть задачка:
Напишите класс, производный от Container так, чтобы Vector из параграфа 16.2.1 мог использоваться в стиле контейнера из параграфа 16.2.2

От класс Vector из параграфа 16.2.1:
C++
1
2
3
4
5
6
7
8
template<class T>
class Vector//optimal6nui
{
public:
    explicit Vector(size_t n):size(n){}//inicializaci9 n ob6ektami co znacheniem T()
    T& operator[](size_t );//indekcaci9
    //...
};
От класс Container из параграфа 16.2.2:
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
struct Object
{
    Object* pre;
    Object* next;
    //...
/*public:
    //konctryktor po ymolchaniyu
    Object():pre(0),next(0){}
 
    //virtual6nui dectryktor
    virtual ~Object(){};*/
};
 
class Container : public Object
{
public:
    struct Bad_op//klacc icklyuchenii
    {
        const char* p;
        Bad_op(const char* pp):p(pp){}
    };
    
    virtual void put(Object*){throw Bad_op("put");}
    virtual Object* get() {throw Bad_op("get");}
    virtual Object*& operator[](int){throw Bad_op("[]");}
    
    //...
};
И от чото я ничего не пойму как этот класс написать и вообще как можно использовать вектор в стиле контейнера?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2013, 17:48     ООП и контейнеры
Посмотрите здесь:

C++ Контейнеры в Windows
C++ контейнеры
C++ Персистентность(контейнеры)
C++ Контейнеры
контейнеры С++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
10.05.2013, 17:55     ООП и контейнеры #2
ninja2, думаю подразумевается, что ты реализуешь Container как интерфейс (т.е. наследуешся и определяешь все операции).

Добавлено через 1 минуту
P.S.: зря ты в Object виртуальный деструктор закомментировал...
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
10.05.2013, 18:24  [ТС]     ООП и контейнеры #3
gray_fox, Это я специально в книге в примере нету там ничо, это я уже сам доделал мб и не правильно, закомментировал специально чтобы не смущать. Вообще то мне нужна сама идея а не код.

Там вообще Object не было.

Цитата Сообщение от gray_fox Посмотреть сообщение
ninja2, думаю подразумевается, что ты реализуешь Container как интерфейс (т.е. наследуешся и определяешь все операции).
То есть мне просто Vector : public Container сделать?
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
10.05.2013, 18:26     ООП и контейнеры #4
ninja2, моя идея простая, имея Container:
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
// implement Container interface
class Vector : public Container {
 
   // implement put op-n
   virtual void put(Object * object) {
      // ...
   }
 
   // implement get op-n
   virtual Object * get() {
      // ...
   }
 
   // ...
};
 
// ...
 
void do_stuff(Container & container) {
   // ...
}
 
// ...
 
int main() {
   Vector vector;
 
   // use Vector as Container
   do_stuff(vector);
}
Что-то вроде такого...

Добавлено через 45 секунд
Цитата Сообщение от ninja2 Посмотреть сообщение
То есть мне просто Vector : public Container сделать?
Думаю да
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
10.05.2013, 18:28  [ТС]     ООП и контейнеры #5
Ну не вектор а другой класс, ну а как тогда Vector будет использоваться в стиле контейнера?

Добавлено через 2 минуты
gray_fox, Ну возможно ты прав. Щас попробую реализовать.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
10.05.2013, 18:30     ООП и контейнеры #6
ninja2, ну это по моему единственный вариант, учитывая, что требуют наследоваться.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.05.2013, 18:34     ООП и контейнеры
Еще ссылки по теме:

C++ Шаблоны и контейнеры
Контейнеры с++ C++
Контейнеры C++

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

Или воспользуйтесь поиском по форуму:
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
10.05.2013, 18:34  [ТС]     ООП и контейнеры #7
gray_fox, Скажем еще и перевод книги мб не сильно хороший, поэтому и условие вышло такое не сильно понятное. Короче спишем все на не точное условие. Как говорится было б нормальное условие был бы нормальный ответ, а так как есть так есть.
Yandex
Объявления
10.05.2013, 18:34     ООП и контейнеры
Ответ Создать тему
Опции темы

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