Здравствуйте!
Я хочу сделать так:
#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;
}
Как исправить это недоразумение?
Заранее спасибо за ответ!
Еще один вариант:
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;
}
int main() {
Class c;
c.method2(c.method1(0));
_getch();
return 0;
}
Я так понимаю, что так.
Подозреваю, что Вы хотели написать так
int a = c.method1(0);
c.method2(a);
или даже так
c.method2(c.method1(0));
Я думаю, что Вы много писали на скриптовых языках, где есть сквозные глобальные переменные. В Вашем случае, хоть две переменные a называются одинаково, с точки зрения компилятора это разные переменные и компилятор не может догадаться, что Вы имели ввиду.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости