0

これは、クラスとその関数で構成されるヘッダー ファイルです。関数を正しく宣言していないと思うので、誰かが私のエラーの場所を指摘してもらえますか? どうもありがとう!ここには初歩的なミスがあるはずです。私は C++ の初心者です。

using namespace std;



class bankAccount
{
    public:
        int accNo;
        int password;

        double balance;
        double withdrawamt;
        double depositamt;

        char name[20];
        char address[40];
        char username[10];

    public:

        double checkbalance();
        double deposit();
        double withdraw();

};

bankAccount::withdraw()
{
       cout << "Enter Withdraw amount: ";
       cin >> withdrawamt;
       if (balance > withdrawamt)
          balance = (balance - withdrawamt);     
}
4

4 に答える 4

2

撤回関数に戻り値の型がありません。そのはず:double bankAccount::withdraw()

それ以外のbankAccount::withdraw()

ヘッダーの関数プロトタイプとコンパイラのエラー コードを確認してください。たとえば、コピーしてideoneに貼り付けると、すぐに答えが得られます。

prog.cpp:25:23: エラー: ISO C++ は、型のない 'withdraw' の宣言を禁止しています [-fpermissive] prog.cpp:25:1: エラー: 'int bankAccount::withdraw()' のプロトタイプは、いずれとも一致しませんクラス 'bankAccount' prog.cpp: 21:16: エラー: 候補は: double bankAccount::withdraw()

幸運を

編集:

  1. 明示するのを忘れていましたが、withdraw メソッドに return ステートメントも追加する必要があります。
  2. 名前、アドレス、およびユーザー名に静的配列を本当に使用するかどうかを自問する必要があります。そして、私の 2 セントは、ユーザー用に別のクラスを作成することです。これは、アドレスが銀行口座に論理的に属していないためです (とにかく私には属していません)。
  3. Deposit は引数として double を取り、void を返す必要があります。
  4. 引き出し額と入金額のメンバー変数は必要ありません。それらをローカル変数にするか、以下のコードのようにメソッドに引数として渡すことをお勧めします。

これは代替の実装です。名前とパスワードを残したことに注意してください。ただし、実際にはこれらは別のクラスに移動する必要があります。

#include <iostream>
#include <string>
#include <vector>
using namespace std;

class bankAccount
{
    public:
    int accNo;
    int password;

    vector<string> name;
    vector<string> address;
    vector<string> username;

    private:
    double balance;

    public:
    bankAccount(double deposit) : balance(deposit) {}
    double checkBalance() { return balance; }
    void deposit(double amount);
    void withdraw(double amount);

};

void bankAccount::deposit(double amount)
{
    balance += amount;
}

void bankAccount::withdraw(double amount)
{
    if (balance > amount)
        balance = (balance - amount);  
}

int main(int argc, char* argv[])
{
    bankAccount someOnesAccount = bankAccount(20.0);
    someOnesAccount.deposit(30);
    someOnesAccount.withdraw(15);
    cout << someOnesAccount.checkBalance();
    return 0;
}

これがもう少し役立つことを願っています。以前の悪い答えをお詫びします。また、このコードにはまだ改善すべき点がたくさんあることに注意してください。

于 2013-05-23T09:01:35.190 に答える
0

ur メソッドは " double " 値、つまりバランスを返すため、関数 draw() の定義を記述するときに、ur 構文に戻り値の型を含める必要があります。

これが修正されたコード行です。

double bankAccount::withdraw()
{
---
}
于 2013-05-23T09:46:49.097 に答える