您的提款函数中没有返回类型。它应该是: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:错误:候选人是:双 bankAccount::withdraw()
祝你好运
编辑:
- 我忘了明确指出您还应该在您的withdraw 方法中添加一个return 语句。
- 您应该问自己是否真的想使用静态数组来存储姓名、地址和用户名。我的两分钱是为用户创建一个单独的类,因为地址在逻辑上不属于银行账户(反正不属于我)。
- 存款应该作为一个参数作为参数,并返回无效。
- 您不需要为提款金额和存款金额设置成员变量。使它们成为局部变量,或者更好地将它们作为参数传递给您的方法,如下面的代码所示。
这是一个替代实现,请注意我留下了名称和密码,但实际上这些应该移动到不同的类:
#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;
}
我希望这更有帮助。我为之前的错误答案道歉。另外,请注意,此代码仍有很多需要改进的地方。