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

Как объявить вектор фиксированной длины в классе? - C++

Восстановить пароль Регистрация
 
SaShka K
3 / 3 / 0
Регистрация: 16.01.2014
Сообщений: 55
10.07.2014, 16:48     Как объявить вектор фиксированной длины в классе? #1
Нужно создать поле класса - вектор из двух элементов.
Но код:
C++
1
2
3
4
5
class A {
private:
    std::vector<int> v (2);
    ...
}
вызывает ошибку - компилятор ругается, что 2 - это константа.
Я так понимаю, что возникает неопределённость - строка объявления вектора трактуется компилятором как объявление функции с именем "v", которая возвращает значение типа std::vector<int> и принимает аргумент в скобках (в моём случае "2"). Как избежать этой неопределённости и таки объявить вектор членом класса?

PS: вне класса такое объявление вектора парсится нормально.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
10.07.2014, 16:50     Как объявить вектор фиксированной длины в классе? #2
В конструкторе. Список инициализации.
Voivoid
 Аватар для Voivoid
580 / 256 / 12
Регистрация: 31.03.2013
Сообщений: 1,284
10.07.2014, 16:51     Как объявить вектор фиксированной длины в классе? #3
Для массивов фиксированной длины есть std::array
SaShka K
3 / 3 / 0
Регистрация: 16.01.2014
Сообщений: 55
11.07.2014, 10:12  [ТС]     Как объявить вектор фиксированной длины в классе? #4
Простите! Вопрос выглядит глупо. Сейчас только на свежую голову заметил ошибку - я написал в теме "вектор фиксированной длины", но хотел сказать "вектор заданной длины". Тем не менее, спасибо за ответы.
Пишу, какие решения мне удалось найти:
C++
1
std::vector<int> v = std::vector<int>(2);   //вариант 1
C++
1
std::vector<int> v {0,0};   //вариант 2
C++
1
A() : v(2) {}   //вариант 3   - это то, о чём сказала Тамика
Yandex
Объявления
11.07.2014, 10:12     Как объявить вектор фиксированной длины в классе?
Ответ Создать тему
Опции темы

Текущее время: 09:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru