-18 / 1 / 0
Регистрация: 28.08.2022
Сообщений: 138
1

Метод класса не видит поле этого же класса

14.01.2023, 20:20. Показов 983. Ответов 2

Author24 — интернет-сервис помощи студентам
Создал класс, метод не видит публичкую переменную, обьявленную в этом же классе.

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
class Speaker
{
    
public:
    
    Speaker(string Path)
    {
        Reader.open(Path);
    }
 
    ofstream Reader;
 
    string NextSpeech()
    {
        
        string res;
        int i = getIndex();
        int NowLine = getIndex();
        while (getline(Reader, res))
        {
            if (i == NowLine)//проверяю, соответствует ли количество итераций цикла с тндексом необходимой мне строкм
            {
 
                i = 0; //обнуляю итератор
                NowLine++;
                UpdateIndex(NowLine); //добавляю к индексу необходимой строки 1
                return res;//в таком случае заношу эту строку в переменную для результата
            }
 
            i++;//в случае если итератор не равен индексу, я прибавляю 1 к итератору и перезапускаю цикл
        }
    }
};
переменная Reader для метода NextSpeech() по какой то причине приватна, как это фиксить?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.01.2023, 20:20
Ответы с готовыми решениями:

В конструкторе вложенного класса инициализируется приватное поле. Потом вызывается функция-метод этого класса и выводит значение этого поля НО НЕ ТО!
Друзья! Почему так? #include <windows.h> #include <iostream> using namespace std; //Вот...

Может ли метод класса возвращать экземпляр этого же класса?
такой вопрос, реально что бы функция класса имела тип класса(возвращала класс), то есть типа так:...

Можно ли сделать поле класса параметром функции-члена этого же класса?
Здраствуйте. ref class MyClass { private: int i, j; array<array<int>^>^ X1; ...

Как вызвать метод класса в другом методе этого же класса?
<? class load_files{ public function traverse_hierarchy($path) { // from...

2
фрилансер
5814 / 5333 / 1094
Регистрация: 11.10.2019
Сообщений: 14,227
14.01.2023, 20:28 2
Лучший ответ Сообщение было отмечено ctepler как решение

Решение

ctepler, приведи код.

А почему же std::ofstream, если ты собираешься читать из файла ?
1
4853 / 2653 / 911
Регистрация: 29.11.2010
Сообщений: 5,714
14.01.2023, 20:43 3
Лучший ответ Сообщение было отмечено ctepler как решение

Решение

Цитата Сообщение от ctepler Посмотреть сообщение
ofstream Reader;
Эту?

Цитата Сообщение от ctepler Посмотреть сообщение
метод не видит публичкую переменную
Не наблюдаю подобного эффекта.
Приведите ошибку компилятора и покажите больше кода.

Добавлено через 1 минуту
Цитата Сообщение от ctepler Посмотреть сообщение
getline(Reader, res)
Зато вот тут есть ошибка компиляции, потому что getline принимает вариант input stream'а, а ofstream Reader таковым не является. Опечатка? Должно было быть ifstream Reader?
0
14.01.2023, 20:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.01.2023, 20:43
Помогаю со студенческими работами здесь

Метод абстрактного класса не видит переменные дочернего класса
есть abstract class A{ protected static $dir; public static function f(){} } и два класса...

Как связать сигнал одного класса со слотом другого класса, содержащего указатель на объект этого класса?
Подскажите, пожалуйста, как связать сигнал одного класса со слотом другого класса, содержащего...

Обращение к классу через поле этого класса
Как обратиться к классу через его поле?

Почему компилятор не видит поле класса
class der<Tematic>:IComparer<Tematic>{ public int Compare(Tematic obj1, Tematic...

Написать метод класса, заполняющий поле-массив и метод, выводящий его
В классе объявлена переменная типа int и динамический массив типа float(размер зависит от...

Не баг ли? Объект видит приватные члены другого объекта этого же класса
не баг ли что getObj() можно изменять приватное свойство другого объекта class Exam1 { ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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