调用基础构造函数并添加到它

时间:2016-01-26 23:45:57

标签: c++ constructor

尝试用C ++编写一个简单的银行系统。

我在2013年用C#编写了一个银行系统。所以,我试图将该代码翻译成C ++,但是我已经碰壁了。

CreditAccount(decimal amount): base(amount)
    {
        //the :base(amount) calls parent constructor
        //passes on parameter amount
        //so only need to initialise additional instance variables
        ODLimit = 100;
    }

基本上,这是我的CreditAccount构造函数,有多种类型的帐户,信用帐户,借记帐户等。它们都有基类帐户。

C#中的这段代码将采用Account的基础构造函数,并允许我保留其中的信息,并专门为CreditAccount添加一个新变量。

我的问题是:在C ++中有替代方法吗?

如果是的话,我可以举个例子吗?还是说服?谢客。

1 个答案:

答案 0 :(得分:3)

这正是在C ++中这样做的方式,除了没有类型decimal(除非你定义)。使用构造函数初始化列表的示例:

#include <iostream>

class Base
{
    int x_;
public:
    Base(int x): x_(x){}
    int getX() const 
    {
        return x_;
    }
};

class Derived: public Base
{
    int y_; // additional member
public:
    Derived(int x, int y): Base(x), y_(y) // call Base ctor, init. additional member
    {}
    int getY() const 
    {
        return y_;
    }
};

int main()
{
    Derived der(10, 20);
    std::cout << der.getX() << " " << der.getY();
}

Live on Coliru