Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

10.05.2013, 17:48. Просмотров 835. Ответов 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("[]");}
    
    //...
};
И от чото я ничего не пойму как этот класс написать и вообще как можно использовать вектор в стиле контейнера?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2013, 17:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ООП и контейнеры (C++):

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

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

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

контейнеры С++ - C++
Задача:заполнить массив четными числами ,а множество – нечетными,с пом. алгоритма merge()объединить эти контейнеры в вектор… Но если ...

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

Персистентность(контейнеры) - C++
Как то не понятно, что имеется в виду под персистентностью в контексте контейнеров... Может кто-нибудь объяснит? спасибо

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

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

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

Цитата Сообщение от gray_fox Посмотреть сообщение
ninja2, думаю подразумевается, что ты реализуешь Container как интерфейс (т.е. наследуешся и определяешь все операции).
То есть мне просто Vector : public Container сделать?
0
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 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 сделать?
Думаю да
1
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
10.05.2013, 18:28  [ТС] #5
Ну не вектор а другой класс, ну а как тогда Vector будет использоваться в стиле контейнера?

Добавлено через 2 минуты
gray_fox, Ну возможно ты прав. Щас попробую реализовать.
0
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
10.05.2013, 18:30 #6
ninja2, ну это по моему единственный вариант, учитывая, что требуют наследоваться.
1
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
10.05.2013, 18:34  [ТС] #7
gray_fox, Скажем еще и перевод книги мб не сильно хороший, поэтому и условие вышло такое не сильно понятное. Короче спишем все на не точное условие. Как говорится было б нормальное условие был бы нормальный ответ, а так как есть так есть.
0
10.05.2013, 18:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.05.2013, 18:34
Привет! Вот еще темы с ответами:

Кодирующие контейнеры? - C++
Существуют ли контейнеры, которые позволяют хранить N элементов за memory&lt;O(N)? Именно на ходу. Скорость не так важна.

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

Ассоциативные контейнеры - C++
В текстовом файле хранятся слова: - вывести список различных слов (set); - подсчитать количество вхождений каждого слова...

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


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

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

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