2013-04-16 3 views
0

저는 account라는 기본 클래스가 있습니다. 세 가지 클래스가 계정에서 상속됩니다. 이 수업은 저축, 수표 및 신용 카드입니다. 내 메인()에서 사용자가 1을 선택하면 계정의 일부인 makeDeposit()을 호출하지만 절약을 통해 전환 메뉴를 만들려고합니다. 이렇게하면 사용자가 3을 선택하면 makeDeposit()이 호출되지만 검사를 통해 수행됩니다. 여기 제가 작성한 코드가 있습니다. 나는 물체 저장을 선언했다. makeDeposit를 호출하면 sa.makeDeposit()과 같이 작성하려고합니다. 여기에 코드입니다 : 여기상속 된 함수 호출에 관해서

int main() 
{ 
    saving sa; 
    creditCard cca; 
    checking ca; 

    string n; 
    int option; 
    int exit = 1; 
    cout << endl; 
    cout << "Checking Balance:" << " " << "   " << "Savings balance:" << " " << "   " << "Credit Card balance:" << " " << endl; 
    cout << endl; 
    cout << " (1) Savings Deposit " << endl; 
    cout << " (2) Savings withdrawel " << endl; 
    cout << " (3) Checking Deposit " << endl; 
    cout << " (4) Write A Check " << endl; 
    cout << " (5) Credit Card Payment " << endl; 
    cout << " (6) Make A Charge " << endl; 
    cout << " (7) Display Savings " << endl; 
    cout << " (8) Display Checkings " << endl; 
    cout << " (9) Display Credit Card " << endl; 
    cout << " (0) Exit " << endl; 
    cin >> option; 

    do{ 

    switch (option) 

    { 
     case 1 : double amtD; 
       cout << " Please enter how much you would like to deposit into savings " << endl; 
       cin >> amtD; 
       double sa.makeDeposit(double amtD); 
       break; 
     case 2 : double makeWithdrawel(); 
       break; 
     case 3 : double makeDeposit(); 
       break; 
     case 4 : 
       break; 
     case 5 : 
       break; 
     case 6 : double makeWithdrawel(); 
       break; 
     case 7 : int display(); 
       break; 
     case 8 : int display(); 
       break; 
     case 9 : int display(); 
       break; 
     case 0 : exit = 0; 
       break; 
     default : exit = 0; 
       cout << " ERROR "; 
    } 
    } 
    while(exit==1); 
    return 0; 
} 

내 클래스 절약은 다음과 같습니다

#include "stdafx.h" 
#include "iostream" 
#include "Account.h" 
#include <string> 
#include <sstream> 
using namespace std; 

class saving: public account 
{ 
public : 

    double doWithdraw(double amount); 
    saving(); 
    saving(string itsName, long itsTaxID, double itsBalance); 
} 

및 계정 내 수업 :

#include "stdafx.h" 
#include <string> 
#include <sstream> 
using namespace std; 
class account { 

public : 
    void setName(string name); void setTaxID(long taxID); void setBalance(double balance); 
    string getName(); long getTaxID(); double getBalance(); 
    double makeDeposit(double amount); 
    account(); 
    account(string itsName, long itsTaxID, double itsBalance); 
    int display(); 

private : 
    string itsName; 
    long itsTaxID; 
    double itsBalance; 

protected : 
    double last10withdraws[10]; 
    double last10deposits[10]; 
    int numdeposits; 
    int numwithdraws; 

}; 

내가 잘못을하고있는 무슨에 어떤 생각?

+3

예상되는 출력을 얻지 못하는 예제 입력 (실제로 얻는 것)은 무엇입니까? – Patashu

답변

1

함수를 잘못 호출하고 있습니다. 반환 값 및 매개 변수에 대해 유형을 포함 할 필요는 없습니다.

case 10: int function(); break; 

실제로 로컬 함수를 선언한다 - 예상대로 하지function를 호출.

스위치 설명은 다음과 같아야합니다. 함수 호출에 유형이 없다는 것을 알아 두십시오.

switch (option) 
{ 
case 1 : double amtD; 
    cout << " Please enter how much you would like to deposit into savings " << endl; 
    cin >> amtD; 
    sa.makeDeposit(amtD); 
    break; 
case 2 : makeWithdrawel(); 
    break; 
case 3 : makeDeposit(); 
    break; 
case 4 : 
    break; 
case 5 : 
    break; 
case 6 : makeWithdrawel(); 
    break; 
case 7 : display(); 
    break; 
case 8 : display(); 
    break; 
case 9 : display(); 
    break; 
case 0 : exit = 0; 
    break; 
default : exit = 0; 
    cout << " ERROR "; 
} 
+0

선장 고맙습니다. 완벽하게 일했습니다. – Dolbyover

0

다음 코드는 약간 이상해 보입니다.

cin >> amtD; 
double sa.makeDeposit(double amtD); 
break; 

당신은 이중 키워드와 변수를 선언하려고하는,하지만 난 당신이 원하는 생각하는 두 가지 중 하나를

  1. 은 그냥 입금에서 반환 된 배를 사용하지 않고 뭐든지 makeDeposit(). 이 경우 그냥 다음과 같은 줄을 작성하십시오. 반환되는 double은 선택적입니다.

    sa.makeDeposit (amtD);

  2. 보증금을 만들고 싶지만 일부 반품 정보도 저장하고 싶습니다. 그렇다면 아마 다음과 같은 일을 할 것입니다 (나중에 새로운 변수를 사용하십시오).

    double justMadeDeposit = sa.makeDeposit (amtD);

일부 추측입니다. 어쩌면 makeDeposit() 함수가 전혀 반환하지 않기를 바란 다음 대신 공으로으로 선언 할 수 있습니다.

+1

실제로 컴파일되지 않습니다. –

+0

@CaptainObvlious : 오, 이제 당신이 의미하는 것을 봅니다. 내가 고칠거야. –

관련 문제