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

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

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

Author24 — интернет-сервис помощи студентам
Никак не могу разобраться. Пробовал по-разному и всегда выскакивали ошибки
Вот есть класс 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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2014, 21:31
Ответы с готовыми решениями:

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

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

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

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

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

Не по теме:


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

Не по теме:

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

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

Не по теме:

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

0
Aloir
12.02.2014, 22:19
  #27

Не по теме:

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


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

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

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

Не по теме:

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

1
Aloir
12.02.2014, 22:23
  #30

Не по теме:

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

0
alsav22
12.02.2014, 22:23
  #31

Не по теме:

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

0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
12.02.2014, 22:24 32
автор, выделите в своем cpp файле строчку
#include "resourse.h"
нажмите правой мышкой и далее Open document (первый к меню).
внимательно посмотрите на файл, в который вас студия перебросит.
в том инклуде в классе resource есть вектор или по прежнему int?
1
224 / 224 / 38
Регистрация: 17.12.2010
Сообщений: 713
12.02.2014, 22:29 33
Цитата Сообщение от 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  [ТС] 34
resourse2 потому что это был второй вариант класса. С этим проблем нет.
А файл .cpp и .h создавал сам и прописывал сам.
Конструктор пустой, т.к. решил построить и посмотреть буду ошибки или нет. После этого попросил помощи
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
12.02.2014, 22:54 35
И? Что тут можно понять? Проект выкладывайте.
0
224 / 224 / 38
Регистрация: 17.12.2010
Сообщений: 713
12.02.2014, 22:54 36
ладно, пойдем от обратного вот рабочий проект
Вложения
Тип файла: rar cyberforum_resource.rar (380.6 Кб, 4 просмотров)
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
12.02.2014, 22:58 37
собирается без ошибок.
0
2062 / 618 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.02.2014, 23:14 38
eter4eter, вы не пробовали запускать проект, выложенный в 36-м сообщении Aloir'ом?
0
Ch1
06.11.2014, 00:14 39
Надеюсь немного пролить свет на эту ошибку. Сам промучался и в итоге получилось:
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;
Все завелось. Потом вернул обратно - опять завелось. Что это было - так и не понял. Понял, что надо экспериментировать)
06.11.2014, 00:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2014, 00:14
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru