#include <iostream>
#include <string>
using namespace std;
class account {
public:
double credit(account account, double add);
double debit(account account, double withdraw);
double getBalance(account account);
double addAccountBalance(account account1, account account2);
account() {
balance = 0;
}
account::account (){
if (balance <= 0){
cout << "Initial balance was invalid!" ;
balance = 0;
}
}
private:
double balance;
};
int main(){
所以我的项目是创建两个银行账户。我遇到的问题是如何创建类帐户对象并使用默认构造函数(帐户)初始化一个,并使用另一个(account :: account)初始化一个。对于默认构造函数,我不是在谈论编译器使用的隐式构造函数。但关于我在那里的人。我希望能够在main中使用这些变量。第一个构造函数。默认。将余额设置为0,如果余额为负数,则将第二个设置为零;
基本上创建一个默认的帐户,另一个使用非默认的构造函数。
答案 0 :(得分:0)
你需要有一个像这样的非默认构造函数来获取参数。正如你所知,两个构造函数都没有参数,因此它们都是默认构造函数的候选者。所以我认为你的程序甚至不会编译。
account (double _balance){
if (_balance <= 0){
cout << "Initial balance was invalid!" ;
balance = 0;
} else {
balance = _balance;
}
}
答案 1 :(得分:0)
您在帐户中实施的帐户::帐户()不是构造函数。
您需要overload constructors才能实现这一目标。
你可以拥有构造函数:
class account {
account();
account(double initialBalance);
}
因此,如果您实例化没有参数的帐户,则将调用第一个构造函数。如果您提供initialBalance,则将使用第二个。