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

时间:2015-09-25 03:27:49

标签: c++ constructor

#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,如果余额为负数,则将第二个设置为零;

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

2 个答案:

答案 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,则将使用第二个。