Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Блок схема для программы https://www.cyberforum.ru/ cpp-beginners/ thread1491089.html
Приветствую! Нужна помощь в создании блок схемы. (Редактирование) Не составлял блок схемы до этого, что не так? (см.вложение). Задание: Надо составить прогу, которая позволяет текст,...
C++ Как правильно удалять выделенную память под указатель на указатель?
есть код #include <iostream> #include <conio.h> #include <stdlib.h> #include <time.h> using namespace std; void sort_1(const int **&const ptr,const int& N) { for (int i = N - 1; i >= 0; i--)...
C++ Обнуляются поля в структуре https://www.cyberforum.ru/ cpp-beginners/ thread1491063.html
Всем привет! Курю книжку по плюсам от Шилдта. Домашнее задание было в книге реализовать поиск по имени товара. Вот объявление структуры. const size_t arraySize = 255; struct InventoryType { ...
C++ Нарисовать блок-схему программы Нужна Блок схема программы "Тест". Вот код: #include "stdafx.h" #include <iostream> #include <fstream> #include <stdio.h> #include <conio.h> #include <string> using namespace std; struct... https://www.cyberforum.ru/ cpp-beginners/ thread1491036.html
C++ Разделить файл на четные и нечетные числа
Программа открывает файл,заполненный случ.числами в диапозоне -500 500.затем считывает из него данные,разделяет четные и нечетные числа и записывает другой файл,сохраняя исходный порядок для каждой...
C++ Составить блок-схему к программе https://www.cyberforum.ru/ cpp-beginners/ thread1491029.html
#include "stdafx.h" #include <iostream> #include <stdio.h> #include <conio.h> #include <dos.h> int main() { int value; std::cout << "Enter value" << std::endl;
C++ Нужна блок-схема #include "stdafx.h" #include <iostream> #include <stdio.h> #include <conio.h> #include <dos.h> int main() { int value; https://www.cyberforum.ru/ cpp-beginners/ thread1491026.html C++ Формирование строки
Здравствуйте. Вопросы таковы: 1) Если мне нужно сформировать строку из большого числа переменных разного типа (числа, массивы символов и std::string), существуют ли классы и функции для таких...
C++ Построить таблицу значений функции Постройте таблицу значений функции для . Решить задачу тремя способами: использовать операторы for, while, do while. https://www.cyberforum.ru/ cpp-beginners/ thread1490996.html C++ Как работает эта программа? (клиент-сервер) клиент: #include <stdio.h> #include <string.h> #include <winsock2.h> #include <windows.h> #pragma comment(lib, "ws2_32.lib") #define PORT 666 char SERVERADDR ; https://www.cyberforum.ru/ cpp-beginners/ thread1490994.html
Передача в функции массивов типа char - ошибка C++
Мне нужно передать в функцию 2 массива типа char (не string)и сделать в функции некоторую их обработку. Функция типа void. Но почему-то возникает ошибка "аргумент типа char не совместим с параметром...
C++ Вывести преобразованный массив https://www.cyberforum.ru/ cpp-beginners/ thread1490989.html
Помогите доделать задачу. Все элементы последовательности с четными номерами, предшествующие первому по порядку элементу с наибольшим значением, домножить на него. #include <iostream> using...
0 / 0 / 1
Регистрация: 01.07.2015
Сообщений: 6
0

Разработка шаблонного класса-контейнера - C++ - Ответ 7827186

01.07.2015, 16:06. Показов 799. Ответов 1
Метки (Все метки)

Помогите пожалуйста разобраться! решаю задачу и не могу найти солюшен, всё очень просто, вот задача:

Необходимо разработать класс контейнера, реализующий приведенный ниже интерфейс. При разработке приветствуется использование STL.
C++
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.

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

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
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; 
}
Добавлено через 2 часа 41 минуту
все стало компилироваться, я не могу разобраться что они хотят видеть во втором параметре, зачем он нужен вот здесь


C++
1
2
3
4
template <class ElemType, class IndexType> class IContainer
{
private:
ElemType arr [12];

и как сделать так чтобы я создавал массивы нужных мне размеров а не заданных изначально.

Вернуться к обсуждению:
Разработка шаблонного класса-контейнера C++
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.07.2015, 16:06
Готовые ответы и решения:

Хочу перегрузить iterator для пользовательского шаблонного класса контейнера
Осваивал шаблонные параметры шаблоны на примере шаблонов контейнерных классов, и открыл для себя...

Как корректно передать в метод шаблонного класса объект шаблонного класса в качестве параметра?
header.h template &lt;class T&gt; class MyVector { public: void swap(MyVector&lt;T&gt;Vector); }...

Разработка класса контейнера
День добрый. В общем у меня есть программа, программный код приведу ниже. Класс Очередь...

Разработка шаблонного класса Set для работы с множеством символов
Требуется разработать шаблонный класс Set для работы с множеством символов. Класс должен содержать...

1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.07.2015, 16:06

Вызов метода у шаблонного поля, шаблонного класса
Пытаюсь разобраться с шаблонами- задача создать шаблонный класс, у которого есть шаблонное поле. и...

Инициализация шаблонного класса(В конструкторе класса после двоеточия вновь имя класса)
Всем доброго времени суток! Пытаюсь разобраться как работает приведенный мной код. Конкретно,...

Возможно ли создание объекта шаблонного класса в функции этого класса?
Доброго времени суток, уважаемые форумчане :) Мне по лабам задали задание - реализовать шаблон...

Чем отличается шаблонный метод класса от шаблонного класса?
Чем отличается шаблонный метод класса от шаблонного класса???????ПЛИЗ!!!!Если можно немного ссылок...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru