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

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

Войти
Регистрация
Восстановить пароль
 
togramago
9 / 9 / 0
Регистрация: 03.11.2009
Сообщений: 39
#1

шаблоны: не могу обеспечить реализацию значения по умолчанию для инициализации элементов вектора - C++

19.01.2010, 21:18. Просмотров 1037. Ответов 3
Метки нет (Все метки)

Здравствуйте!
Помогите пожалуйста разобраться с таким вот:

у меня есть класс Vector который темплэйт

C++
1
2
3
4
5
6
7
8
9
10
11
12
template<class T, T N> class Vector
{
    int size; //current size of vector (number of elements)
    int max; //max number of elements
    T * value; //array of elements
public:
    Vector();
    virtual ~Vector();
    Vector(int max);
    Vector(int max, int size);
    Vector(const Vector<T, N> & v);
...};
c функциями которые работают для встроенных типов например
C++
1
Vector <int, 10> v(10, 3)
выдает 10 10 10 - тоесть все нормально
но если написать
C++
1
Vector<Fraction, Fraction(3,5)> v(10, 3)
(Fraction - класс дробей)
начинает выдавать ошибки:

C++
1
a call to a constructor cannot appear in a constant-expression
- если с этим все понятно и просто заменяется на переменную объявленную раньше, то что делать с этими?:
C++
1
initializer expression list treated as compound expression
C++
1
invalid type in declaration before ‘(’ token
C++
1
template argument 2 is invalid
при замене на переменную получается вот что:
C++
1
2
const Fraction f(3,5);
Vector<Fraction, f> vf(12, 3);
и ошибки:

C++
1
‘f’ cannot appear in a constant-expression
- почему? никак не могу понять - наверное в этом и ошибка?
C++
1
initializer expression list treated as compound expression
C++
1
invalid type in declaration before ‘(’ token
C++
1
template argument 2 is invalid

как его побороть?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2010, 21:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос шаблоны: не могу обеспечить реализацию значения по умолчанию для инициализации элементов вектора (C++):

Определить конструктор для инициализации полей по умолчанию - C++
У меня такое задание по лабу, кстати она самая сложная и последняя: дана структура: struct Student { char *LastName; ...

Сформировать вектора х(4), значения элементов которого являются максимальные значения столбцов матрицы - VBA
составить программу формирования вектора х(4), значения элементов которого являются максимальные значения столбцов матрицы а(3, 4). а(3, 4)...

Просто не могу вывести значения из вектора - C++
#include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;stdexcept&gt; using std::cout; using std::cin; using std::endl; ...

Не могу запустить скрипт для инициализации проекта - Python
Django 1.11 Python 3.6.1 Пожалуйста, посмотрите на initialize_project.py ниже и как я его запускаю. Traceback тоже там. Если...

Составить главную программу и функцию. Для данного вектора А(М) найти количество неповторяющихся элементов вектора - C++
Здравствуйте. Буду очень благодарен,если кто нибудь напишет два кода к этим задачам. Спасибо за внимание. Задача 1. Составить...

Вычислить количество элементов, больших среднего значения элементов вектора - Free Pascal
Вычислить количество элементов, больших среднего значения элементов вектора

3
Adler
78 / 78 / 3
Регистрация: 07.05.2009
Сообщений: 316
19.01.2010, 21:41 #2
togramago,
Vector<тут не должно быть переменных!!!>
1
togramago
9 / 9 / 0
Регистрация: 03.11.2009
Сообщений: 39
19.01.2010, 22:27  [ТС] #3
Цитата Сообщение от Adler Посмотреть сообщение
togramago,
Vector<тут не должно быть переменных!!!>
спасибо!
но как в таком случае инициализировать вектор с дробями?
0
CheshireCat
Эксперт С++
2895 / 1244 / 78
Регистрация: 27.05.2008
Сообщений: 3,397
19.01.2010, 23:08 #4
C++
1
template<class T, const T N>
1
19.01.2010, 23:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2010, 23:08
Привет! Вот еще темы с ответами:

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

Значения элементов вектора - Java SE
Программа получает N параметров вызова (аргументы командной строки). Эти параметры – элементы вектора. Строится массив типа double, а на...

Шаблоны и параметр по умолчанию - C++
Добрый день. Вроде всё делаю по учебнику, но компилятор не пропускает: #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;cstdlib&gt; ...

Значения по умолчанию для массива - C++
Можно ли задать значение по умолчанию для массива? Так не работает: Enrollee(string f = &quot;Unknown&quot;, string l = &quot;Unknown&quot;, unsigned b = {...


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

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

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