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

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

Войти
Регистрация
Восстановить пароль
 
SaShka K
3 / 3 / 0
Регистрация: 16.01.2014
Сообщений: 55
#1

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

10.07.2014, 16:48. Просмотров 916. Ответов 3
Метки нет (Все метки)

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

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

Не могу объявить вектор в классе - C++
Здравствуйте. Изучаю С++, пишу игру &quot;Покер&quot;.) Только начал и сразу столкнулся с проблемой. При объявлении массива стрингов с помощью...

Как объявить vector в классе? - C++
template&lt;typename NODETYPE&gt; class List { public: List(); ~List(); ... private: ... vector&lt;Node&lt;NODETYPE&gt; *&gt;...

Как объявить переменную в классе? - C++
Доброго времени суток. Как правильно объявить переменную в private: Делаю так: private: std::vector&lt;double&gt;* parameters = new...

Как объявить текстовую константу в классе? - C++
Добрый вечер. Нужно объявить текстовую константу в классе. Как это сделать? static const QString FAQ = &quot;faq.txt&quot;;Можно также просто как...

Как правильно объявить vector в классе? - C++
как правильно объявить вектор? #include &lt;vector&gt; #include &lt;algorithm&gt; using namespace std; extern int map; ...

Avx, как написать эффективную функцию сравнения строк фиксированной длины? - C++
Начал изучать AVX, и никак не могу понять в чем преимущество функции _mm256_cmpeq_epi8, если потом все равно нужно делать 32 сравнения?...

3
Тамика
Котовчанин
911 / 454 / 144
Регистрация: 16.02.2010
Сообщений: 3,113
Записей в блоге: 27
10.07.2014, 16:50 #2
В конструкторе. Список инициализации.
1
Voivoid
675 / 278 / 12
Регистрация: 31.03.2013
Сообщений: 1,339
10.07.2014, 16:51 #3
Для массивов фиксированной длины есть std::array
1
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   - это то, о чём сказала Тамика
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2014, 10:12
Привет! Вот еще темы с ответами:

Как правильно объявить вектор? - C++
Только начинаю постигать STL. Подскажите, как заполнить случайными числами 1..9 значения контейнеров vector и map. И как вектор...

Как в классе правильно объявить массив с константой в качестве размерности? - C++
Приветствую всех! Написал следующий код: Unit1.h class WireBare_Open { const int METAL_MAX; const int SECTION_MAX; ...

Как объявить в классе static-массив, не используя cpp файлы - C++
Есть шаблон. В шаблон в качестве аргумента надо передать массив. Именно в качестве аргумента шаблона, а не в качестве аргумента методов...

Есть ли у кого похожий алгоритм: распределения отрезков разной длины внутри отрезков фиксированной длины? - C++
Народ помогите мне с программой распределения отрезков разной длины внутри отрезков фиксированной длины с минимальными остатками. К...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
11.07.2014, 10:12
Ответ Создать тему
Опции темы

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