인출 기능에는 반품 종류가 없습니다. 그것은해야한다 : double bankAccount::withdraw()
대신 체크
bankAccount::withdraw()
의 헤더에있는 함수 프로토 타입 및 컴파일러의 오류 코드. 예를 들어, ideone에 복사 붙여 넣기가 바로 대답 제공합니다
prog.cpp:25:23: error: ISO C++ forbids declaration of ‘withdraw’ with no type [-fpermissive] prog.cpp:25:1: error: prototype for ‘int bankAccount::withdraw()’ does not match any in class ‘bankAccount’ prog.cpp: 21:16: error: candidate is: double bankAccount::withdraw()
행운을
편집 :
나는 당신이 또한 반환 문을 추가해야 함을 명시 할 것을 잊었다
- 당신의 인출 방법.
- 이름, 주소 및 사용자 이름에 정적 배열을 실제로 사용할지 묻는 것이 좋습니다. 그리고 두 개의 센트는 주소가 논리적으로 은행 계좌에 속해 있지 않기 때문에 사용자를 위해 별도의 수업을 만드는 것입니다 (어쨌든 나에게는 안됨).
- 보증금은 인수로 double을 취하고 void를 반환해야합니다.
- 인출 금액과 입금액에 대한 멤버 변수가 필요하지 않습니다. 로컬 변수를 만들거나 아래 코드와 같이 메서드에 인수로 전달하는 것이 좋습니다.
여기 대안 구현, 나는 이름과 암호에 남아 있지만, 정말이 다른 클래스로 이동해야 있습니다 :
#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;
}
나는이 좀 더 helpfull 바랍니다. 나는 전에 나쁜 대답에 사과했다. 또한이 코드를 개선하는 방법은 아직 많이 남아 있습니다. 프로그램에서
실제 발생하는 오류를 포함 할 수 있다면 분명 도움이 될 것입니다. – Nbr44
'name [20]'은 잘못되었을 가능성이없는 디자인처럼 보입니다. 일단 고객에게 넘겨지면 다시 물지 않습니다. –
최소의 클래스를 먼저 컴파일하고 거기에서 가져 오는 것이 어떨까요? 귀하의 모범에서 너무 많은 것이 잘못되었습니다. – juanchopanza