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

Шаблоны. Нетиповые параметры - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Принудительный выход из цикла http://www.cyberforum.ru/cpp-beginners/thread924811.html
Вообщем надо при определенном условии завершать вложенный цикл, такой код будет работать??? for(.....) { for(.....) { if (......) { дейтвие; дейтвие;
C++ Два взаимосвязных класса Имеется два файла заголовка. A.h #ifndef A_INCLUDED #define A_INCLUDED #include "B.h" class B; class A{ public: B* nt; void Afun() {} http://www.cyberforum.ru/cpp-beginners/thread924794.html
Работа функции remove_copy_if () C++
вот такая функция проверки является ли выражение в строке палиндромом bool IfPolyndrom (string phrase) { string temp; remove_copy_if (phrase.begin (), phrase.end (), temp.begin (), NotChar);//удаляет НЕ буквы string reversed (temp); transform ( temp.rbegin (), temp.rend (), reversed.begin (), ToLower);//переводит в нижний регистр и записывает в обратном порядке ...
C++ Как подойти к решению задачи
Кода и готового решения не прошу!!! Есть задачка грубо говоря звучит так: есть аудитория в которой сидят 30 человек, 1 за одной партой. У каждого есть максимум 4 соседа: спереди, справа, сзади, слева (но может и не быть некоторых из соседей, например человек сидит за первой партой во втором ряду у него нету соседа спереди). У каждого вначале есть 1000 бумажек с написанным на них порядковым...
C++ Задача по функциям (сохранение данных в массиве, вывод, среднее значение) http://www.cyberforum.ru/cpp-beginners/thread924736.html
Напишите программу, которая запрашивает у пользователя 10 результатов игры в гольф, сохраняя их в массиве. При этом необходимо обеспечить возможность прекращения ввода до ввода всех 10 результатов. Программа должна отобразить все результаты в одной строке и сообщить их среднее значение. Реализуйте ввод, отображение и вычисление среднего в трех отдельных функциях, работающих с массивами.
C++ const_cast mutable в чем разница? спасибо. подробнее

Показать сообщение отдельно
Мимино
 Аватар для Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
17.07.2013, 22:18     Шаблоны. Нетиповые параметры
Доброго времени суток. Столкнулся с проблемой. В учебнике, по которому я занимаюсь, о нетиповых параметрах написан всего 1 абзац , зато задачи присутствуют. Вот одна из них:
Написать шаблон класса Array с использованием нетипового параметра numberOfElements, который определяет количество элементов массива.
Ничего толком не зная о нетиповых параметрах я создал это (все постить не буду, ошибки пошли сразу же начиная с конструктора )
Класс:
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
template <class elementType, int numberOfElements>
class Array
{
    template <class elementType1, int numberOfElements1>
    friend ostream &operator <<(ostream &, const Array<elementType1, numberOfElements1> &);
    template <class elementType1, int numberOfElements1>
    friend istream &operator >>(istream &, Array<elementType1, numberOfElements1> &);
 
public:
    Array();
    Array(const Array<elementType, numberOfElements> &);
    ~Array();
    int getSize() const;
    const Array &operator = (const Array<elementType, numberOfElements> &);
    int operator == (const Array<elementType, numberOfElements> &) const;
    int operator != (const Array<elementType, numberOfElements> &) const;
    elementType &operator [](int);
 
 
private:
    elementType *ptr;
    int size;
};
#endif
Конструктор
C++
1
2
3
4
5
6
7
8
9
10
template <class elementType, int numberOfElements>
Array<elementType, numberOfElements>::Array()
{
    size = numberOfElements;
    ptr = new elementType[size];
    assert(ptr != 0);
 
    for (int i = 0; i < size; i++)
        ptr[i] = 0;
}
Ну и сразу же ожидаемая ошибка после объявления в мейне Array<int, 7> integers1;
1>Job 12 7.obj : error LNK2001: unresolved external symbol "public: __thiscall Array<int,7>::~Array<int,7>(void)" (??1?$Array@H$06@@QAE@XZ)
1>Job 12 7.obj : error LNK2001: unresolved external symbol "public: __thiscall Array<int,7>::Array<int,7>(void)" (??0?$Array@H$06@@QAE@XZ)
В гугле много инфы не нашел. Самое полезное
template <class T, int size>// реализация параметризованного члена-функции
void A<T, size>::func() {
}
то есть я вроде бы все правильно сделал.
Что мне нужно:
1. Статью, главу учебника, ссылку где я смогу прочитать и (тут самое главное) ПОНЯТЬ, как работать с нетиповыми параметрами
2. Простой пример(можно прямо на моем классе), который расставит все точки над i;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru