这是我第一次在这个网站上发帖,因此我会以建设性的方式感谢所有批评。我正在学习用 C++ 编写面向对象的编程,并决定对 ATM 机器进行简单的模拟,该机器接受用户输入并对其进行处理(即 makeDeposit、checkBalance 等)。
我的问题: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;
}
任何提示也将不胜感激,因为我即将参加最粗略的数据结构课程,但对面向对象编程的经验很少。
另外,有人可以向我解释什么是颠覆以及它是如何使用的。