powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Разработка шаблонного класса-контейнера
3 сообщений из 3, страница 1 из 1
Разработка шаблонного класса-контейнера
    #38996895
The New Guy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста разобраться! решаю задачу и не могу найти солюшен, всё очень просто, вот задача:

Необходимо разработать класс контейнера, реализующий приведенный ниже интерфейс. При разработке приветствуется использование STL.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
class ElemNotFound {};
template < class ElemType, class IndexType > class IContainer
{
public:
virtual const ElemType& GetElem( const IndexType& index ) const throw ( ElemNotFound ) = 0;
virtual void PutElem( const IndexType& index, const ElemType& elem ) throw () = 0;
};


Решение надо представить под Windows.

Я сделал эскиз, но он не компилируется студией ни в какую, и я в принципе в нем не до конца уверен, что надо изменить, что улучшить??

Код: plaintext
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.
#include "stdafx.h"
#include <string>
#include <iostream>

//class ElemNotFound {};
template <class ElemType, class IndexType> class IContainer
{
private:
ElemType arr [IndexType];
public:
IContainer() {};
IContainer(const ElemType & elem, const IndexType & index);
virtual const ElemType& GetElem( const IndexType& index ) /*const throw ( ElemNotFound ) = 0*/;
virtual void PutElem( const IndexType& index, const ElemType& elem ) /*throw () = 0*/; //первый это номер элемента в массиве, второй сам элемент
};
template<class ElemType, class IndexType=int>
IContainer<ElemType, IndexType>::IContainer(const ElemType & elem, const IndexType & index)
{
for(int i=0; i<index; i++)
arr[i]=elem;
}
template<class ElemType, class IndexType>
void IContainer<ElemType, IndexType>::PutElem(const IndexType& index, const ElemType& elem)
{
arr[index]=elem;
}
template<class ElemType, class IndexType>
const ElemType& IContainer<ElemType, IndexType>::GetElem(const IndexType & index)
{
return arr[index];
}

int main()
{
IContainer<double, int> ob (5, 7);
IContainer<std::string, int> blablabla("google", 6);
blablabla.PutElem(4, "duck");
//std::cout<<blablabla.GetElem(3);
return 0; 
}
...
Рейтинг: 0 / 0
Разработка шаблонного класса-контейнера
    #38997020
The New Guy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все стало компилироваться, я не могу разобраться что они хотят видеть во втором параметре, зачем он нужен вот здесь


Код: plaintext
1.
2.
3.
4.
template <class ElemType, class IndexType> class IContainer
{
private:
ElemType arr [12];



и как сделать так чтобы я создавал массивы нужных мне размеров а не заданных изначально.
...
Рейтинг: 0 / 0
Разработка шаблонного класса-контейнера
    #38997036
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The New Guy,

Попробуй применить свой класс таким образом:

Код: plaintext
1.
IContainer<double, std:string> ob;
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Разработка шаблонного класса-контейнера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]