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

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

Восстановить пароль Регистрация
 
 
eter4eter
0 / 0 / 0
Регистрация: 12.02.2014
Сообщений: 16
12.02.2014, 21:31     Ошибка заполнения вектора строк в классе #1
Никак не могу разобраться. Пробовал по-разному и всегда выскакивали ошибки
Вот есть класс 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.
Объясните, пожалуйста, что я не так делаю...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Aloir
 Аватар для Aloir
216 / 216 / 13
Регистрация: 17.12.2010
Сообщений: 688
12.02.2014, 22:11     Ошибка заполнения вектора строк в классе #21
Цитата Сообщение от programina Посмотреть сообщение

Не по теме:


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

Не по теме:

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
12.02.2014, 22:12     Ошибка заполнения вектора строк в классе #22
А ТС упорно не отвечает на вопрос:
Цитата Сообщение от alsav22 Посмотреть сообщение
Откуда файл взялся, с тем же именем поля, но не вектора строк?
Приведённые ошибки (в первом посте) были по коду в первом посте, а не по последнему.
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.02.2014, 22:12     Ошибка заполнения вектора строк в классе #23
Цитата Сообщение от alsav22 Посмотреть сообщение
В выложенном коде нет ошибок.
Тогда подождем остальные части кода )
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
12.02.2014, 22:15     Ошибка заполнения вектора строк в классе #24
проблема может быть в
#include "resourse.h"
что это за файл? может компилятор видит не тот файл, который ожидает автор.
например в некоторых типах проектов студия сама генерит файл с таким именем. может ее
от этого клинит. или банально правится файл в другом месте, а студия смотрит на старый.
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.02.2014, 22:17     Ошибка заполнения вектора строк в классе #25
Цитата Сообщение от Aloir Посмотреть сообщение
заполнения вектора идет в методе класса, где этот вектор является членом этого класса, нам не важен спецификатор доступа, вообще в данном случае они не важны
Не важно откуда этот вектор, важно то, что сам метод приватный и поэтому его нельзя вызывать.
alsav22
12.02.2014, 22:19
  #26

Не по теме:

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

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()
    {
 
    }
};


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

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

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

Не по теме:

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

Aloir
12.02.2014, 22:23
  #30

Не по теме:

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

alsav22
12.02.2014, 22:23
  #31

Не по теме:

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

DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
12.02.2014, 22:24     Ошибка заполнения вектора строк в классе #32
автор, выделите в своем cpp файле строчку
#include "resourse.h"
нажмите правой мышкой и далее Open document (первый к меню).
внимательно посмотрите на файл, в который вас студия перебросит.
в том инклуде в классе resource есть вектор или по прежнему int?
Aloir
 Аватар для Aloir
216 / 216 / 13
Регистрация: 17.12.2010
Сообщений: 688
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 ?
eter4eter
0 / 0 / 0
Регистрация: 12.02.2014
Сообщений: 16
12.02.2014, 22:42  [ТС]     Ошибка заполнения вектора строк в классе #34
resourse2 потому что это был второй вариант класса. С этим проблем нет.
А файл .cpp и .h создавал сам и прописывал сам.
Конструктор пустой, т.к. решил построить и посмотреть буду ошибки или нет. После этого попросил помощи
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
12.02.2014, 22:54     Ошибка заполнения вектора строк в классе #35
И? Что тут можно понять? Проект выкладывайте.
Aloir
 Аватар для Aloir
216 / 216 / 13
Регистрация: 17.12.2010
Сообщений: 688
12.02.2014, 22:54     Ошибка заполнения вектора строк в классе #36
ладно, пойдем от обратного вот рабочий проект
Вложения
Тип файла: rar cyberforum_resource.rar (380.6 Кб, 3 просмотров)
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
12.02.2014, 22:58     Ошибка заполнения вектора строк в классе #37
собирается без ошибок.
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.02.2014, 23:14     Ошибка заполнения вектора строк в классе #38
eter4eter, вы не пробовали запускать проект, выложенный в 36-м сообщении Aloir'ом?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2014, 00:14     Ошибка заполнения вектора строк в классе
Еще ссылки по теме:

Написать программу заполнения двумерного массива A по схеме, результаты заполнения выдать на экран и в файл C++
C++ Объединение строк в строковом классе
C++ Функция заполнения вектора

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

Или воспользуйтесь поиском по форуму:
Ch1
Сообщений: n/a
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;
Все завелось. Потом вернул обратно - опять завелось. Что это было - так и не понял. Понял, что надо экспериментировать)
Yandex
Объявления
06.11.2014, 00:14     Ошибка заполнения вектора строк в классе
Ответ Создать тему
Опции темы

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