如何用不同的构造函数创建类对象

How to create class objects with different constructors?

本文关键字:创建 对象 构造函数 何用不      更新时间:2023-10-16
#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(){

所以我的项目是创建两个银行账户。问题是我如何创建类帐户对象,并初始化一个与默认构造函数(帐户)和一个与另一个(帐户::帐户)。对于默认构造函数,我不是在谈论编译器使用的隐式构造函数。而是我在下面的那个。我希望能够在main中使用这些变量。第一个构造函数。默认值。如果余额为负数,则将余额设置为0,如果余额为负数,则将余额设置为0;

基本上用默认构造函数创建一个帐户,用非默认构造函数创建另一个帐户。

您需要有一个像这样的非默认构造函数,它接受一个参数。正如您所看到的那样,两个构造函数都不接受参数,因此它们都是默认构造函数的候选者。所以我认为你的程序根本无法编译。

account (double _balance){
        if (_balance <= 0){
            cout << "Initial balance was invalid!" ;
            balance = 0;
        } else {
            balance = _balance;
        }
}

在account内部实现的account::account()不是构造函数。

你需要重载构造函数来实现这一点。

可以有以下构造函数:

class account {
    account();
    account(double initialBalance);
}

所以如果你实例化account没有参数,第一个构造函数将被调用。如果您提供了一个initialBalance,则将使用第二个。