Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 12.02.2014
Сообщений: 16

Ошибка заполнения вектора строк в классе

12.02.2014, 21:31. Показов 3472. Ответов 38
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Никак не могу разобраться. Пробовал по-разному и всегда выскакивали ошибки
Вот есть класс resourse
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
class resourse
{
private:
    int definitions; // = 5;
    int unions;// = 21;
    int prepositions;// = 28;
    int closures;// = 18;
    int particles;// = 32;
    int prefix;// = 21;
    int suffix;// = 55;
 
    bool initDefinitions(int n = 5);
    bool initUnions(int n = 21);
    bool initPrepostitions(int n = 28);
    bool initClosures(int n = 18);
    bool initParticles(int n = 32);
    bool initPrefix(int n = 21);
    bool initSuffix(int n = 55);
public:
    resourse(void);
    ~resourse(void);
    int getDefinitions();
    int getUnions();
    int getPrepositions;
    int getClosures();
    int getParticles();
    int getPrefix();
    int getSuffix();
};
Потом я описываю функции класса
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
resourse::resourse(void)
{
}
 
resourse::~resourse(void)
{
}
 
bool resourse::initDefinitions(int n)
{
       
        definitions.push_back(".");
        definitions.push_back("!");
        definitions.push_back("?");
        definitions.push_back("!?");
        definitions.push_back("?!");  
               
}
// и другие функции
При попытке компиляции куча ошибок связанных с push_back.
Объясните, пожалуйста, что я не так делаю...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.02.2014, 21:31
Ответы с готовыми решениями:

Функция заполнения вектора
Доброго времени суток всем, кто на форуме. Где-то мне попадалась функция, которая может заполнить все элементы вектора определенным...

Организация заполнения вектора с консоли
есть код для заполнения массива #define ESC 27 vector <int> Heights; int h; while ( getch() != ESC ) { cin...

While(cin >> x) или подскажите другие способы заполнения вектора
Читаю Страуструпа. Ну и естественно делаю упражнения. И вот дошел до 5 главы, где понадобилась его гребаная библиотека...

38
 Аватар для Aloir
225 / 225 / 38
Регистрация: 17.12.2010
Сообщений: 713
12.02.2014, 22:11
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от programina Посмотреть сообщение

Не по теме:


Добро пожаловать в удивительный мир Visual Studio

Не по теме:

заполнения вектора идет в методе класса, где этот вектор является членом этого класса, нам не важен спецификатор доступа, вообще в данном случае они не важны

0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
12.02.2014, 22:12
А ТС упорно не отвечает на вопрос:
Цитата Сообщение от alsav22 Посмотреть сообщение
Откуда файл взялся, с тем же именем поля, но не вектора строк?
Приведённые ошибки (в первом посте) были по коду в первом посте, а не по последнему.
0
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.02.2014, 22:12
Цитата Сообщение от alsav22 Посмотреть сообщение
В выложенном коде нет ошибок.
Тогда подождем остальные части кода )
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
12.02.2014, 22:15
проблема может быть в
#include "resourse.h"
что это за файл? может компилятор видит не тот файл, который ожидает автор.
например в некоторых типах проектов студия сама генерит файл с таким именем. может ее
от этого клинит. или банально правится файл в другом месте, а студия смотрит на старый.
0
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.02.2014, 22:17
Цитата Сообщение от Aloir Посмотреть сообщение
заполнения вектора идет в методе класса, где этот вектор является членом этого класса, нам не важен спецификатор доступа, вообще в данном случае они не важны
Не важно откуда этот вектор, важно то, что сам метод приватный и поэтому его нельзя вызывать.
0
12.02.2014, 22:19

Не по теме:

Цитата Сообщение от programina Посмотреть сообщение
Не важно откуда этот вектор, важно то, что сам метод приватный и поэтому его нельзя вызывать.
Где-то виден его вызов? Совсем нельзя вызывать? Или в методах класса, всё-таки, можно?

0
12.02.2014, 22:19

Не по теме:

Цитата Сообщение от programina Посмотреть сообщение
Не важно откуда этот вектор, важно то, что сам метод приватный и поэтому его нельзя вызывать.
метод нельзя вызывать извне данного класса
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
class test
{
    test()
    {
        somefunct();
    }
 
    void somefunct()
    {
 
    }
};


пс: и этот приватный метод можно еще вызвать с дружественного класса или функции)
пспс: я думаю мы просто недопонимаем где-то друг друга =)

лучше подождем тс

0
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.02.2014, 22:21
Цитата Сообщение от alsav22 Посмотреть сообщение
Где-то виден его вызов? Совсем нельзя вызывать? Или в методах класса, всё-таки, можно?
Конструктор пустой. Я больше ничего кроме пустого конструктора не вижу.
0
12.02.2014, 22:21

Не по теме:

Цитата Сообщение от Aloir Посмотреть сообщение
я думаю мы просто недопонимаем где-то друг друга =)
А я думаю, что всё programina понимает.

1
12.02.2014, 22:23

Не по теме:

ощущение что кто-то кого-то тролит :D:D:D

0
12.02.2014, 22:23

Не по теме:

Цитата Сообщение от programina Посмотреть сообщение
Конструктор пустой. Я больше ничего кроме пустого конструктора не вижу.
А я, вообще, ничего не вижу, а главное ничего не слышу от ТС. :) Пора, наверное, от темы отписываться...

0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
12.02.2014, 22:24
автор, выделите в своем cpp файле строчку
#include "resourse.h"
нажмите правой мышкой и далее Open document (первый к меню).
внимательно посмотрите на файл, в который вас студия перебросит.
в том инклуде в классе resource есть вектор или по прежнему int?
1
 Аватар для Aloir
225 / 225 / 38
Регистрация: 17.12.2010
Сообщений: 713
12.02.2014, 22:29
Цитата Сообщение от DU Посмотреть сообщение
автор, выделите в своем cpp файле строчку
#include "resourse.h"
нажмите правой мышкой и далее Open document (первый к меню).
внимательно посмотрите на файл, в который вас студия перебросит.
в том инклуде в классе resource есть вектор или по прежнему int?
+1

новый класс называется resourse2, если он создавался project/add class то файлы будут называться resourse2.h/.cpp

может include resourse2.h ?
0
0 / 0 / 0
Регистрация: 12.02.2014
Сообщений: 16
12.02.2014, 22:42  [ТС]
resourse2 потому что это был второй вариант класса. С этим проблем нет.
А файл .cpp и .h создавал сам и прописывал сам.
Конструктор пустой, т.к. решил построить и посмотреть буду ошибки или нет. После этого попросил помощи
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
12.02.2014, 22:54
И? Что тут можно понять? Проект выкладывайте.
0
 Аватар для Aloir
225 / 225 / 38
Регистрация: 17.12.2010
Сообщений: 713
12.02.2014, 22:54
ладно, пойдем от обратного вот рабочий проект
Вложения
Тип файла: rar cyberforum_resource.rar (380.6 Кб, 4 просмотров)
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
12.02.2014, 22:58
собирается без ошибок.
0
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.02.2014, 23:14
eter4eter, вы не пробовали запускать проект, выложенный в 36-м сообщении Aloir'ом?
0
Ch1
06.11.2014, 00:14
Надеюсь немного пролить свет на эту ошибку. Сам промучался и в итоге получилось:
C++
1
2
3
vector <string> questions;
questions.push_back("asd\n");
cout << questions[0];
У меня компилятор ругался при вот таком объявлении
C++
1
vector <string> questions();
Хотя, до этого веря интернету, всё должно было работать и я вбивал именно так.
Еще странные вещи происходили когда варьировал с наличием пробелов в объявлении вектора. Первое объявление в этом посте изначально не хотело компилироваться с ошибкой "error C2228: выражение слева от ".push_back" должно представлять класс, структуру или объединение". Когда удалил пробелы:
C++
1
vector<string>questions;
Все завелось. Потом вернул обратно - опять завелось. Что это было - так и не понял. Понял, что надо экспериментировать)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.11.2014, 00:14

Объявление вектора в классе
Здравствуйте! объявляю структуру в h файле: struct Admin { char login_admin; char pass_admin; }; class Nev_potok_blok { ...

Добавление элементов вектора в классе
Скажем так код отсебятина, сейчас изучаю по немногу программирование, в уроках была задачка более простого типа, мне же захотелось сделать...

Ошибка с итераторами для целочисленного вектора и вектора структуры
Пытаюсь разобраться с векторами. Для динамической работы с памятью вещь, вроде, замечательная и удобная. Только необходимо использовать...

Реализовать функцию перемещения строк, принимающую в качестве параметров два вектора строк
Подскажите насколько правильно решена задача. условие: Напишите функцию MoveStrings, которая принимает два вектора строк, source и...

Оператор >> в классе вектора
Доброго дня, уважаемые форумчане. Описываю класс - вектор. Подскажите пожалуйста, как добиться того чтобы оператор &quot;&gt;&gt;&quot;...


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

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru