2014-11-03 2 views
-2

Я полностью новичок и так расстроен, когда пытался сделать свой код с классом ex. И у меня есть этот кодКак ввести переменные в класс C++?

#include <iostream> 

using namespace std; 

class MyFunction { 
int a, b, x, y; 
public: 
void setVar (int one, int two, int three, int four) { 
    a = one; 
    b = two; 
    x = three; 
    y = four; 
} 
int result() { 
    return (a-b)*(x-y); 
} 
}; 

int main() { 
int one; 
int two; 
int three; 
int four; 
MyFunction equal; 
equal.setVar(one, two, three, four); 
cout << "Your number here "<< endl; 
cin >> one >> two >> three >> four; 
cout << "Your result is " << equal.result() << endl; 

return 0; 
} 

Я хочу сделать вывод на основе переменной (числа), которую я вводил в программу. Каждый раз, когда я запускаю его, он будет равен нулю. Кто-нибудь может помочь мне исправить то, что я сделал неправильно в коде?

Спасибо.

+2

'equal.setVar (один, два, три, четыре);' хранит текущие значения одного, двух, трех, четырех в классе. Когда эти переменные в основном обновляются новыми значениями из cin, члены MyFunction не обновляются. Вы должны поместить эту строку после чтения ввода. –

+0

'MyFunction' - хорошее название для класса ... – GingerPlusPlus

ответ

1

Вы вызываете equal.setVar(one, two, three, four);, прежде чем вводить пользователя и заполнять переменные соответствующими значениями. Попробуйте следующее:

cout << "Your number here "<< endl; 
cin >> one >> two >> three >> four; 
equal.setVar(one, two, three, four); 
cout << "Your result is " << equal.result() << endl; 

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

0

Вы должны позвонить cin >> one >> two >> three >> four; перед вызовом equal.setVar (один, два, три, четыре);

Смежные вопросы