Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
 Аватар для alexey31415
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632

инициализация перменных в конструкторе

01.09.2012, 21:27. Показов 1759. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
у меня есть статический вектор векторов инт(vector<vector<int>>),который мне нужно заполнить данными,но при попытке написать
C++
1
vector<vector<int>> Subscriber::_home_network_prefixes.push_back(prefix);
ничего не выходит,точка перед push_back подчёркнута красным и пишет требуется объявление
помогите понять в чём дело
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.09.2012, 21:27
Ответы с готовыми решениями:

Инициализация указателей в конструкторе
Всем привет! Вот интересный вопрос. Написано, что до вызова тела конструктора создаются поля класса. Для пользовательских типов -...

Инициализация массива в конструкторе
подскажите пожалуйста, по условиям задачи необходимо создать массив int #include &lt;iomanip&gt; #include &lt;cstdlib&gt; using...

Инициализация char в конструкторе
class Abit { public: Abit(); ~Abit(); protected: private: bool medal;

17
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
01.09.2012, 21:29
Давай полный код!
0
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
01.09.2012, 21:31
а что ты хочешь сказать этой строчкой? я имею ввиду зачем вот это:
C++
1
vector<vector<int>>
>> замени на > > (пробел между ними. к твоей ошибке отношения не имеет, но все равно ошибка)
0
 Аватар для alexey31415
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
01.09.2012, 21:37  [ТС]
класс Subscriber
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
class Subscriber
{
friend class Call;
friend class Date;
 
public:
Subscriber
(
vector<int> subscriber_number,
string subscriber
);
 
//функции для работы с абонентом
//----------------
bool AddNewCall();
bool PrintCalls();
bool DeleteCall();
bool SaveCalls();
//----------------
 
 
//функции для проверки введённых данных
//-----------------------------------------------------
bool CorrectNumber(const vector<int> &number);
bool CorrectDate(const Date &start,const Date &finish);
//-----------------------------------------------------
 
bool SetLastCostAdd();
 
//функции для определения параметров звонка
//-----------------------------------------
bool IsInsideHomeNetwork(const vector<int> &number);
Date CalculateFreeMinutes
(
const Date &call_start,//
bool IsOutgoing,//
bool inside_home_network,//
const Date &duration//
);
//-----------------------------------------
 
 
private:
vector<int> _subscriber_number;//
string _subscriber;//
 
vector<Call> _calls;//
 
Date LastCreditAdd;//
Date LastWeekend;//
 
Date free_minutes_in_home_network;//
Date free_minutes_on_weekend;//
 
static double _connection_fee;//
static double _cost_inside_home_network;//
static double _cost_outside_home_network;//
static vector<vector<int>> _home_network_prefixes;//
};


реализация
C++
1
2
3
4
5
6
int _prefix[3] = {0,9,5};
 
vector<int> prefix(_prefix,_prefix + 3);
 
 
vector<vector<int>> Subscriber::_home_network_prefixes.push_back(prefix);
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
01.09.2012, 21:38

Не по теме:

Цитата Сообщение от novi4ok Посмотреть сообщение
>> замени на > > (пробел между ними. к твоей ошибке отношения не имеет, но все равно ошибка)
novi4ok, с++11 поддерживает >> для шаблонов


alexey31415,
Цитата Сообщение от alexey31415 Посмотреть сообщение
реализация
реализация чего? если метода класса то
C++
1
2
3
4
5
int _prefix[3] = {0,9,5};
 
vector<int> prefix(_prefix,_prefix + 3);
 
_home_network_prefixes.push_back(prefix);
1
 Аватар для alexey31415
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
01.09.2012, 21:44  [ТС]
Цитата Сообщение от Jupiter Посмотреть сообщение
_home_network_prefixes.push_back(prefix) ;
а разве не нужно писать в перед именем перменной имя класса и ::

и ничего не вышло,у меня переменная красным подчёркивается
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
01.09.2012, 21:46
Цитата Сообщение от alexey31415 Посмотреть сообщение
и ничего не вышло,у меня переменная красным подчёркивается
ещё раз спрашиваю,
Цитата Сообщение от alexey31415 Посмотреть сообщение
реализация
реализация чего???

Добавлено через 31 секунду
Цитата Сообщение от alexey31415 Посмотреть сообщение
а разве не нужно писать в перед именем перменной имя класса и ::
в литературе все подробно расписано!
0
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
01.09.2012, 21:49
но ты же где-нибудь этот вектор положить должен сперва, а потом уже пушить туда что-то. т.е.
C++
1
2
vector<vector<int>> Subscriber::_home_network_prefixes;
Subscriber::_home_network_prefixes.push_back(prefix);
0
 Аватар для alexey31415
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
01.09.2012, 21:54  [ТС]
Цитата Сообщение от Jupiter Посмотреть сообщение
реализация чего???
да это я написал,как собираюсь заполнять вектор значениями

Добавлено через 1 минуту
вот как я инициализирую статические элементы класса
C++
1
2
3
4
5
6
7
8
9
10
double Subscriber::_connection_fee = 0.33;
double Subscriber::_cost_inside_home_network = 0.5;
double Subscriber::_cost_outside_home_network = 0.95;
 
int _prefix[3] = {0,9,5};
 
vector<int> prefix(_prefix,_prefix + 3);
 
vector<vector<int>> Subscriber::_home_network_prefixes(5);
vector<vector<int>> Subscriber::_home_network_prefixes.push_back(prefix);
0
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
01.09.2012, 22:00
убери
C++
1
vector<vector<int>>
из последней строки. уже третий раз сказал одно и то же, а ты как .. не знаю кто. больше не буду.
0
 Аватар для alexey31415
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
01.09.2012, 22:07  [ТС]
думаешь я не попробывал сразу же?
название класса подчёркивается
0
~ Эврика! ~
 Аватар для OhMyGodSoLong
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
01.09.2012, 22:12
В Си++ нет статических инициализаторов, афаик даже в С++11. Нельзя писать всякие .push_back() вне тел функций при глобальных определениях. Попробуйте список инициализации:
C++
1
vector<vector<int>> Subscriber::_home_network_prefixes = {1, 2, 3, 4, 5};
0
 Аватар для alexey31415
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
01.09.2012, 22:26  [ТС]
попробую
не помогло
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
01.09.2012, 23:03
Цитата Сообщение от alexey31415 Посмотреть сообщение
попробую
не помогло
C++
1
std::vector<std::vector<int>> Subscriber::_home_network_prefixes = {{1, 2, 3, 4, 5}};
?
0
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
02.09.2012, 00:45
выкладывай весь проект, короче.
"я тебе не верю" (с)
0
 Аватар для alexey31415
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
02.09.2012, 10:52  [ТС]
что мне выкладывать?интерфейс класса на 500 строк,когда проблема лишьв 5 строчках?
сам класс я привёл
0
~ Эврика! ~
 Аватар для OhMyGodSoLong
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
02.09.2012, 11:57
Запихните все push_back в одну функцию void STATIC_INIT(), вызовите её в сааамом начале main().
0
 Аватар для alexey31415
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
02.09.2012, 12:04  [ТС]
я уже решил использовать 4 разных вектора,всё равно они не будут изменяться ов время программы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.09.2012, 12:04
Помогаю со студенческими работами здесь

Инициализация массива в конструкторе
Здравствуйте, я хотел бы узнать, возможна ли инициализация массива в конструкторе без использования циклов? Вот пример конструктора ...

Инициализация *char в конструкторе
Хай эврибади! class A { private: int a; int b; char *str; public: A() : a(0), b(0) { str = '\0'; }

Инициализация строковых массивов в конструкторе
Здравствуйте уважаемые гуру. Задачка: Нужно инициализировать массив char'ов (и пару int'ов) в конструкторе для объекта Х,а потом...

Инициализация массива char в конструкторе
Вопрос такой. Есть класс simple, в классе есть поле char in. Естественно хочу инициализировать это поле в конструкторе. in={0},...

Инициализация перемнных класса в конструкторе
Есть ли разница между Constructor():var_1(VAL), var_2(VAL) {} и Constructor() { var_1 = VAL; var_2 = VAL; } ?


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru