2012-12-07 7 views
0

클래스의 함수 프로토 타입을 어떻게 작성하는지 설명 할 수 있습니까? 코드 시작 부분에 main 함수를 어떻게 두어야합니까?함수 클래스/멤버 함수의 프로토 타입

여기 클래스를 사용하여 일반적인 수학 연산을 수행하기위한 코드입니다. 나는 설명을 위해 웹 검색을 시도했지만, 실제로는 전혀 알지 못했다. 어떤 도움을 주시면 감사하겠습니다.

#include <iostream> 
using namespace std; 


class fraction 
{ 
    public: 
     fraction(); 
     fraction(int, int); 

     friend fraction operator + (fraction f1, fraction f2); 
     friend fraction operator - (fraction f1, fraction f2); 
     friend fraction operator * (fraction f1, fraction f2); 
     friend fraction operator/(fraction f1, fraction f2); 

     void readFrac(); 
     void displayFrac(); 

    private: 
     int num; 
     int denom; 
}; 

fraction::fraction() 
{ 
    num = 0; 
    denom = 1; 
} 

fraction::fraction(int n, int d) 
{ 
    num = n; 
    denom = d; 
} 


void fraction::readFrac() 
{ 
    char slash; 
    do { 
     cout << "Please enter numerator/denominator: " << endl; 
     cin >> num >> slash >> denom; 
    } while (slash != '/'); 
} 

void fraction::displayFrac() 
{ 
    cout << num << '/' << denom; 
} 

fraction operator + (fraction f1, fraction f2) 
{ 
    fraction temp(f1.num*f2.denom + f1.denom*f2.num, f1.denom*f2.denom); 
    return temp; 
} 

fraction operator - (fraction f1, fraction f2) 
{ 
    fraction temp(f1.num*f2.denom - f1.denom*f2.num, f1.denom*f2.denom); 
    return temp; 
} 

fraction operator * (fraction f1, fraction f2) 
{ 
    fraction temp(f1.num*f2.num, f1.denom*f2.denom); 
    return temp; 
} 

fraction operator/(fraction f1, fraction f2) 
{ 
    fraction temp(f1.num*f2.denom, f1.denom*f2.num); 
    return temp; 
} 

int main() 
{ 
    fraction f1, f2, f3; 

    cout << "Please enter first fraction: " << endl; 
    f1.readFrac(); 

    cout << "Please enter second fraction: " << endl; 
    f2.readFrac(); 

    f3 = f1 + f2;  cout << endl << endl; 
    f1.displayFrac(); cout << " + "; 
    f2.displayFrac(); cout << " = "; 
    f3.displayFrac(); cout << endl << endl; 

    f3 = f1 - f2;  cout << endl << endl; 
    f1.displayFrac(); cout << " - "; 
    f2.displayFrac(); cout << " = "; 
    f3.displayFrac(); cout << endl << endl; 

    f3 = f1 * f2;  cout << endl << endl; 
    f1.displayFrac(); cout << " * "; 
    f2.displayFrac(); cout << " = "; 
    f3.displayFrac(); cout << endl << endl; 

    f3 = f1/f2;  cout << endl << endl; 
    f1.displayFrac(); cout << "/"; 
    f2.displayFrac(); cout << " = "; 
    f3.displayFrac(); cout << endl << endl; 
} 
+1

이미 클래스에서 프로토 타입의 메서드를 사용하고 있습니다. 예 :'void readFrac();'. –

+2

(1) 여기서 정확히 질문은 무엇입니까? (2) 이전 질문에 대한 답을 수락하십시오. – NPE

+0

(1) 코드 시작 부분에 main 함수를 어떻게 두어야합니까? (2) 대답은 어떻게 받습니까? 나는 단지 게시물에 대한 피드백을 제공합니까? – user1793565

답변

1

은 메인 가정하면 당신은 당신의 코드의 시작 부분에 넣을 수는 없지만 멤버 함수의 정의 전에, 바로 클래스 정의 후를 넣을 수 있습니다, 클래스를 사용합니다.

또는 클래스 정의를 헤더에, 멤버 구현을 별도의 소스 파일에 넣고 main 함수를 주 소스 파일의 유일한 비트 코드로 사용할 수 있습니다.

+0

오, 알겠습니다. 해명 해줘서 고마워. 교수님은 항상 코드의 시작 부분에 주요 기능을 넣으라고 알려줍니다. 처음에 그것을 두는 것에 대해 할 수있는 일이 없기 때문에, 수업을 끝내면 충분합니다. – user1793565