Как при вызове функции-члена передать возвращаемое значение из другой функции-члена C++

179
21 января 2019, 17:50

Здравствуйте!

Я хочу сделать так:

#include <iostream>
#include <conio.h>
using namespace std;
class Class {
public:
    int method1(int a) {
        //блок кода...
        return a;
    }
    int method2(int a) {
        //блок кода...
    }
};
int main() {
    Class c;
    c.method1(0);
    c.method2(a); //ВОТ ТУТ ПРОБЛЕМА!
                  //пишет, что переменная неинициализорвана,
                  //но она уже введена пользователем в method1()
    _getch();
    return 0;
}

Как исправить это недоразумение?

Заранее спасибо за ответ!

Answer 1

Еще один вариант:

class Class {
public:
    static int a;
    int method1() {
        //блок кода... например:
        a += 5;
        return a;
    }
    int method2(int k) {
        //блок кода...
        return k + method1();
    }
};
int Class::a = 0;
    int main()
    {    
        Class c;
        c.method1();   // 5
        c.method2(Class::a); //5 + 5 + 5
        return 0;
    }
Answer 2
int main() {
    Class c;
    c.method2(c.method1(0));
    _getch();
    return 0;
}

Я так понимаю, что так.

Answer 3

Подозреваю, что Вы хотели написать так

int a = c.method1(0);
c.method2(a);

или даже так

c.method2(c.method1(0));

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

READ ALSO
c++ реализация контейнера с итератором для доступа к данным, хранящимся в файле

c++ реализация контейнера с итератором для доступа к данным, хранящимся в файле

Поскольку когда мучаю читателей этого сайта мелкими задачами и часто возникает вопрос "зачем", то решил описать сразу и большую задачу, с которой...

152
Помогите составить код с операторами switch,break,goto

Помогите составить код с операторами switch,break,goto

Сейчас делаю задачу из интернета,основная цель используя оператор switch, составить программу для получения таблицы значений функции У для...

172
Вывод имени USB-девайса

Вывод имени USB-девайса

Пытаюсь вывести имя нового USB-девайса, когда его подключаютПроблема в том, что при вставке флешки messagebox появляется, но на нем ничего нет

184
CLion отображение символов

CLion отображение символов

Неправильно отображаются символы в сообщениях об ошибках в терминале CLionСреди руководств в инете полезной информации не нашел, поэтому надеюсь...

144