0

account という基本クラスがあります。3 つのクラスがアカウントから継承されます。これらのクラスは、貯蓄、当座預金、およびクレジット カードです。私の main() では、ユーザーが 1 を選択すると、アカウントの一部である makeDeposit() が呼び出されるように、スイッチ メニューを作成しようとしていますが、それは貯蓄を通じて行われます。このように、ユーザーが 3 を選択すると makeDeposit() が呼び出されますが、これはチェックによって行われます。これが私が書いたコードです。オブジェクト保存 sa を宣言しました。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;

};

私が間違っていることについて何か考えはありますか??

4

2 に答える 2

1

関数を間違って呼び出しています。戻り値とパラメーターの型を含める必要はありません。

case 10: int function(); break;

実際にローカル関数を宣言しています-期待どおりに呼び出していませんfunction

switch ステートメントは次のようになります。関数の呼び出しに型がないことに注意してください

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 ";
}
于 2013-04-17T00:07:52.803 に答える
0

次のコードは少し奇妙に見えます。

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

doubleキーワードを使用して変数を宣言しようとしていますが、次の 2 つのいずれかを行う必要があると思います。

  1. makeDeposit() から返された double を何も使用せずにデポジットを行うだけです。その場合、次のように行を記述します (返された double の使用はオプションです)。

    sa.makeDeposit(amtD);

  2. デポジットを行いたいだけでなく、いくつかの返品情報も保存したいと考えています。次に、おそらく次のようなことを行うでしょう(そして、新しい変数を後で何かに使用します)。

    double justMadeDeposit = sa.makeDeposit(amtD);

それはいくつかの推測です。makeDeposit() 関数が何も返さないようにしたい場合は、代わりにvoidとして宣言することができます。

于 2013-04-17T00:08:34.613 に答える