2014-04-17 3 views
1

모든 정수 및 char 값에 대해 정의되지 않은 기호 오류가 발생합니다. 제발 도와주세요. int xyz은 작동하지 않으며 function의 char 값입니다. 이 코드는 컴파일C++ 정의되지 않은 기호 오류

using namespace std; 
+1

정확한 오류 메시지를 게시하십시오. 또한'main main'은'main main'이 아니고' '이 아니라''입니다. – chris

+0

당신이'namespace std;'를 사용하여 누락되었을 가능성이 있습니까? 그렇지 않으면'std ::'한정자가 많이 있습니까? – niklasfi

+0

오류 메시지가'x','y','z'에 관한 것이 확실합니까? 컴파일을 시도 할 때'cin '과'cout'에 대한 오류가 발생합니다. – Barmar

답변

1

계산 기능에 값을 전달해야합니다. 변수 x, y, z 및 함수는 클래스 외부에서 액세스 할 수 없으며 Calculate 함수의 출력을 얻을 수 있도록 함수에 반환 유형이 필요합니다.

class Calculator 
{ 
public: 
int x; 
int y; 
int z; 
char function; 

int Calculate(int main_x,int main_y,char main_function) 
{ 
    x= main_x; 
    y=main_y; 
    function = main_function; 
    if(function=='+') 
    {z=x+y; return z;} 
    else if(function=='-') 
    {z=x-y; return z;} 
    else if(function=='*') 
    {z=x*y; return z;} 
    else if(function=='/') 
    {z=x/y; return z;} 
    else 
    {cout<<"Wrong Function!!!"; return 0;} 
} 
}; 

void main() 
{ 
    clrscr(); 
    int main_x,main_y,main_z; 
    char main_function; 

Calculator working; 
cout<<"Welcome!"<<endl; 
cout<<"Enter your first number:"<<endl; 
cin>>x; 
cout<<"Enter your function:"<<endl; 
cin>>function; 
cout<<"Enter your second number:"<<endl; 
cin>>y; 
main_z = working.Calculate(main_x,main_y,main_function); 
cout<<"Your Result is:"<<main_z<<endl; 
getch(); 
} 
3

중 하나를 사용 std::cin, std::cout, std::endl 또는 표준 네임 스페이스를 포함 :

#include <iostream> 
#include <math.h> 
#include <string.h> 

using namespace std; 

class Calculator 
{ 
public: 
int x,y; 
float z; 
void add() 
{ 
cin>>x; 
cin>>y; 
z=x+y; 
cout<<"The addition is:"<<z<<endl; 
} 
void substract() 
{ 
cin>>x; 
cin>>y; 
z=x-y; 
cout<<"The substraction is:"<<z<<endl; 
} 
void multiply() 
{ 
cin>>x; 
cin>>y; 
z=x*y; 
cout<<"The multiplication is:"<<z<<endl; 
} 
void divide() 
{ 
cin>>x; 
cin>>y; 
z=x/y; 
cout<<"The division is:"<<z<<endl; 
} 

}; 

int main() 
{ 
cout<<"Hello User!"<<endl; 
char Name[23]; 
cout<<"Enter your name:"; 
cin>>Name; 
cout<<"Hy "<<Name<<endl; 

cout<<"Calculator:"<<endl; 
Calculator maths; 

cout<<"Enter two numbers to Add:"<<endl; 
maths.add(); 
cout<<"Enter two numbers to Substract:"<<endl; 
maths.substract(); 
cout<<"Enter two numbers to Multiply:"<<endl; 
maths.multiply(); 
cout<<"Enter two numbers to Divide:"<<endl; 
maths.divide(); 
} 

당신이 사용할 때마다 당신은 std:: 예선 누락 cin, cout, 또는 endlstd::cout, std::cinstd::endl을 사용하거나 using namespace std;을 파일 시작 부분에 포함하십시오.

+0

@Barmar 코드를 컴파일하려했으나 x, y, z에 오류가 발생하지 않았습니다. –

2

#include <iostream.h> 
#include <conio.h> 
#include <math.h> 
#include <string.h> 

class Calculator 
{ 
    public: 
    int x; 
    int y; 
    int z; 
    char function; 

    void Calculate() 
    { 
     if(function=='+') 
     {z=x+y;} 
     else if(function=='-') 
     {z=x-y;} 
     else if(function=='*') 
     {z=x*y;} 
     else if(function=='/') 
     {z=x/y;} 
     else 
     {cout<<"Wrong Function!!!";} 
    } 
}; 

void main() 
{ 
    clrscr(); 
    Calculator working; 
    cout<<"Welcome!"<<endl; 
    cout<<"Enter your first number:"<<endl; 
    cin>>x; 
    cout<<"Enter your function:"<<endl; 
    cin>>function; 
    cout<<"Enter your second number:"<<endl; 
    cin>>y; 
    working.Calculate(); 
    cout<<"Your Result is:"<<z<<endl; 
    getch(); 
} 
1

오류가오고 당신이 외부에서 클래스 멤버 변수 X, Y, Z에 액세스하려고하기 때문에 주() X는, y는, Z는 선언되지된다.

제대로 작동하려면, x, y, z가 올바른 값을 가져야합니다.이 변수는 가비지 값을가집니다.

0

코드를 성공적으로 컴파일 한 버전입니다.

#include <iostream> 
#include <cmath> 
#include <cstring> 
using namespace std; 

class Calculator 
{ 
public: 
    int x; 
    int y; 
    int z; 
    char function; 

    void Calculate() 
    { 
    if(function=='+') 
     {z=x+y;} 
    else if(function=='-') 
     {z=x-y;} 
    else if(function=='*') 
     {z=x*y;} 
    else if(function=='/') 
     {z=x/y;} 
    else 
     {cout<<"Wrong Function!!!"<<endl;} 
    } 
}; 

int main() 
{ 

    Calculator working; 
    cout<<"Welcome!"<<endl; 
    cout<<"Enter your first number:"<<endl; 
    cin>>working.x; 
    cout<<"Enter your function:"<<endl; 
    cin>>working.function; 
    cout<<"Enter your second number:"<<endl; 
    cin>>working.y; 
    working.Calculate(); 
    cout<<"Your Result is:"<<working.z<<endl; 
    return 0; 
} 
관련 문제