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

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

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

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

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

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

PS: вне класса такое объявление вектора парсится нормально.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2014, 16:48     Как объявить вектор фиксированной длины в классе?
Посмотрите здесь:

C++ Как правильно объявить vector в классе?
C++ Не могу объявить вектор в классе
C++ Как в классе правильно объявить массив с константой в качестве размерности?
C++ Как объявить vector в классе?
C++ Как объявить массив объектов одного класса в другом классе, а затем поместить в него объекты?
Как правильно объявить вектор? C++
C++ Как объявить вектор векторов, если размеры изначально неизвестны?
C++ Как объявить текстовую константу в классе?
Avx, как написать эффективную функцию сравнения строк фиксированной длины? C++
Не удается объявить вектор пар как свойство класса C++
C++ Есть ли у кого похожий алгоритм: распределения отрезков разной длины внутри отрезков фиксированной длины?
C++ Как инициализировать вектор в классе?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Тамика
Котовчанин
 Аватар для Тамика
866 / 446 / 132
Регистрация: 16.02.2010
Сообщений: 2,659
Записей в блоге: 27
10.07.2014, 16:50     Как объявить вектор фиксированной длины в классе? #2
В конструкторе. Список инициализации.
Voivoid
 Аватар для Voivoid
593 / 269 / 12
Регистрация: 31.03.2013
Сообщений: 1,328
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     Как объявить вектор фиксированной длины в классе?
Ответ Создать тему
Опции темы

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