#include <iostream>
using namespace std;
class Calculator // 이걸 실행해보면 Addcount와 Mincount이 쓰레기값이 들어가있는지 433432 같은 수가 출력됩니다ㅠㅠ Init에서 초기화도 해줬는데 뭐가 문제인가요
{
private:
double result;
int Addcount;
int Divcount;
int Mincount;
int Mulcount;
public:
void Init();
double Add(double num1, double num2);
double Div(double num1, double num2);
double Min(double num1, double num2);
double Mul(double num1, double num2);
void ShowOpCount();
};
void Calculator::Init()
{
int Addcount=0;
int Divcount=0;
int Mincount=0;
int Mulcount=0;
}
double Calculator::Add(double num1, double num2)
{
result = num1 + num2;
Addcount++;
return result;
}
double Calculator::Div(double num1, double num2)
{
result = num1 / num2;
Divcount++;
return result;
}
double Calculator::Min(double num1, double num2)
{
result = num1 - num2;
Mincount++;
return result;
}
double Calculator::Mul(double num1, double num2)
{
result = num1 * num2;
Mulcount++;
return result;
}
void Calculator::ShowOpCount()
{
cout<<"덧셈: "<<Addcount<<" 뺄셈: "<<Mincount<<" 곱셈: "<<Mulcount<<" 나눗셈: "<<Divcount<<endl;
}
int main (void)
{
Calculator cal;
cal.Init();
cout<<"3.2 + 2.4 = "<<cal.Add(3.2, 2.4)<<endl;
cout<<"3.5 / 1.7 = "<<cal.Div(3.5, 1.7)<<endl;
cout<<"2.2 - 1.5 = "<<cal.Min(2.2, 1.5)<<endl;
cout<<"4.9 / 1.2 = "<<cal.Div(4.9, 1.2)<<endl;
cal.ShowOpCount();
return 0;
}
행님 Init() function 안에 int Addcount=0; 이렇게 해버리면, class의 Addcount가 0이 되는것이 아니고, Init() function 안에 Addcount라는 이름의 새로운 지역변수가 생성되고, 그 지역변수가 0이 되는 것입니다.
int Addcount = 0;
을 Addcount=0;으로 바꿔보십쇼
감사하오. 왜 거따 초기화가 아닌 선언도 같이 해버렸는지 나도 모르겠소ㅋㅋ 한참 봐도 왜 몰랐을까
ㅂ365 테니스 오토플 일수익 50 후루룩! nete77