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

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

Войти
Регистрация
Восстановить пароль
 
ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
#1

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

10.05.2013, 17:48. Просмотров 737. Ответов 6
Метки нет (Все метки)

Здорова господа!
От есть задачка:
Напишите класс, производный от 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++
Задача:заполнить массив четными числами ,а множество – нечетными,с пом. алгоритма merge()объединить эти контейнеры в вектор… Но если ...

Контейнеры - C++
Здравствуйте. Помогите написать программу на С, с этим языком не знаком почти, а контейнеры вообще не понимаю. В общем беда полная.... ...

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

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

Контейнеры в Windows - C++
Привет.На лето в институте задавали как практику написать приложение с 2мя контейнерами.Мне попалось со списками.Так вот , условиям выбра...

Контейнеры STL - C++
Кто знает где найти информацию по поводу стандартных контейнеров STL? Интересует не то, как их применять, а основы реализации. Может быть...

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

Добавлено через 1 минуту
P.S.: зря ты в Object виртуальный деструктор закомментировал...
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!
1411 / 1140 / 55
Регистрация: 21.04.2012
Сообщений: 2,362
Завершенные тесты: 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
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
10.05.2013, 18:28  [ТС]     ООП и контейнеры #5
Ну не вектор а другой класс, ну а как тогда Vector будет использоваться в стиле контейнера?

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

Контейнеры list - C++
Здравствуйте! Такой вопросик есть: Если у меня имеется такая штука list&lt;int&gt; *adj; - в классе this -&gt; V=V; adj = new list&lt;int&gt; ;...

Шаблоны и контейнеры - C++
Подскажите, пожалуйста, отличия между шаблоном и контейнером (кроме наличия итератора).

Строки-контейнеры - C++
Клас-контейнер который является абстракцией текста и состоит из обьектов класа строки и методов добавления строки в текст, удаления строки...

контейнеры, вектор - C++
Привет! Подскажите пожалуйста как осуществить доступ к элементу вектора, который сам состоит из векторов типа char. Приведите пожалуйста...


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

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

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