3

このサイトに投稿するのは初めてなので、建設的な方法ですべての批判に感謝します. 私は C++ でオブジェクト指向プログラミングを書くことを学んでおり、ユーザー入力を取り込んで処理する (つまり、makeDeposit、checkBalance など) ATM マシンの簡単なシミュレーションを作成することにしました。

私の問題: BankAccount メソッド: makeDeposit は、getBalance() の出力をゼロのプレフィックスに変更することになります: たとえば、makeDeposit(10) は getBalance() を 0 -> 010 に変更します。

`//BankAccout.h
#ifndef BANK_ACCOUNT_H
#define BANK_ACCOUNT_H
#include <string>
class BankAccount {

private:
    float m_accountBalance;
public:
    BankAccount ();
    float getBalance();

    /*Can I pass by value or would reference be necessary?*/
    void makeDeposit(BankAccount&, int);

};

#endif`



   //BankAccout.cpp
#include "BankAccount.h"

#include <iostream> //remove once done
using namespace std; //remove once done

BankAccount::BankAccount () {
    m_accountBalance = 0;
}

float BankAccount::getBalance() {
    return m_accountBalance;
}

//increment the object balance based on ammount
void BankAccount::makeDeposit(BankAccount &bao, int deposit_amount) {
    bao.m_accountBalance += deposit_amount;
}



int main () {
    BankAccount b1;
    cout << b1.getBalance(); //returns 0
    b1.makeDeposit (b1,1); //returns 01
    cout << b1.getBalance();
    //Ex.
    //makeDepost(b2, 10);
    //b2.getBalance(); will retrun 010

    return 0;
}

オブジェクト指向プログラミングの経験がほとんどない最も大まかなデータ構造コースを受講しようとしているので、ヒントも大歓迎です。

また、転覆とは何か、どのように使用されるのかを誰かが説明してくれませんか。

4

2 に答える 2

6

0値をコンソールに出力し、残高に追加し1て、再び残高をコンソールに出力します。結果?01.

それを避ける方法は?<< endlevery cout の最後に追加します。次に、すべての値を別々の行に出力します。例:
cout << b1.getBalance();に変更cout << b1.getBalance() << endl;

2 番目の質問 (最初の質問とは関係ありませんが):
Subversion (SVN とも呼ばれます) はソフトウェアのバージョン管理システムです。それを使用して頻繁にバックアップを行うことができ、何よりもまず、チームと協力してプロジェクトを操作できます。詳細: http://en.wikipedia.org/wiki/Apache_Subversion

于 2012-09-08T09:09:26.237 に答える
2

あなたは新しい行を印刷していないので、01. それを修正するには、後で呼び出しendl;ますcout << b1.getBalance();

そのようです:

int main () {
    BankAccount b1;
    cout << b1.getBalance() << endl; //returns 0
    b1.makeDeposit (b1,1); //returns 01
    cout << b1.getBalance() << endl;
    //Ex.
    //makeDepost(b2, 10);
    //b2.getBalance(); will retrun 010

    return 0;
}
于 2012-09-08T09:08:53.903 に答える