Kselax.ru

Hacker Kselax — the best hacker in the world

Menu
  • Блог
  • Контакты
  • wp plugin генератор
  • Русский
    • Русский
    • English
Menu

Вектор в стиле контейнера.

Posted on 10 мая, 201310 мая, 2013 by admin

Напишите класс, производный от Container так, чтобы Vector из параграфа 16.2.1 мог использоваться в стиле контейнера из параграфа 16.2.2

Так вообщем тут все запутано и я ничо не понял что же нам нужно написать все таки. Так написать нам нужно все таки класс производный от Container. Уже более менее ясно. Как же его написать? А так чтобы Vector из параграфа 16.2.1 мог использоваться в стиле контейнера из параграфа 16.2.2. Отут уже загвоздочка. Ничерта мне не ясно.

Условие задачки как оказалось запутанное и мне пришлось обратиться за помощью и там мне подсказали просто Vector унаследовать от Container, что я щас и сделаю.

Вот код который у меня получился:

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
//cozdaem klacc proizvodnui ot Container.
#include <iostream>
using std::cout;
using std::endl;
 
struct Object
{
Object* pre;
Object* next;
//...
public:
//konctryktor po ymolchaniyu
Object():pre(0),next(0){}
 
//virtual6nui dectryktor
virtual ~Object(){};
};
 
//cam klacc kontainer
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("[]");}
//...
};
 
class Ship : public Container
{
public:
int data;
//konctryktor po ymolchaniyu
Ship():data(0){}
//konctryktor preobrazovani9
Ship(int a):data(a){}
};
 
//Vector iz 16.2.1
template<class T>
class Vector : public Container//optimal6nui
{
public:
T mass[30];
int size;
explicit Vector(size_t n):size(n){}//inicializaci9 n ob6ektami co znacheniem T()
 
T& operator[](size_t n)//indekcaci9
{
if(n<=size&&n>=0)
return mass[n];
}
T getSize(){return size;}
//...
};
 
int main()
{
cout <<"Klacc proizvodnui ot Container"<<endl;
Ship a(1);
Ship b(2);
Ship c(3);
Vector<Ship> vec(3);
vec[0]=a;
vec[1]=b;
vec[2]=c;
 
cout <<"vec[0].data= "<<vec[0].data<<endl;
cout <<"vec[1].data= "<<vec[1].data<<endl;
cout <<"vec[2].data= "<<vec[2].data<<endl;
 
return 0;
}

Просто сделали наследование и просто создали вектор ток который нам нужен.

[youtube]http://www.youtube.com/watch?v=zrM7wTd8r34[/youtube]

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Рубрики

  • C++ (293)
  • JavaScript (1)
  • linux (1)
  • MFC (39)
  • node.js (2)
  • React (3)
  • vBulletin (5)
  • Visual Studio (9)
  • wordpress (18)
  • Разное (29)

Метки

Ajax bootstrap CentOS CLI expressjs FormData GDlib google Invisible reCAPTCHA JWT media MFC php react-router-dom redux repository wordpress RTTI STL vBulletin vector Visual Studio WINAPI wordpress wp-plugins XMLHttpRequest Двоичное дерево Задачи С++ Игры С++ Исключения С++ О-большое Операторы_С++ Перегрузка операторов С++ Поиск С++ Потоки Проектирование_С++ С++ Типы_С++ Типы С++ Шаблоны С++ библиотеки локализация макросы С++ сортировка С++

Свежие комментарии

  • ExchiNuGs к записи Программка для заполнения форума на vBulletin 3.8.7
  • RA3PKJ к записи visual C++, создание диалоговых окон.
  • admin к записи Как удалить изображение из google
  • Shakanris к записи Программка для заполнения форума на vBulletin 3.8.7
  • костя к записи visual C++, создание диалоговых окон.
©2021 Kselax.ru Theme by ThemeGiant