我可以在C ++中调用另一个重载的构造函数吗?

时间:2015-06-02 04:06:46

标签: c++ overloading

class draw
{
    draw(circle i)
    {
        // draw a circle;
    }

    draw(circle i, circle j)
    {
        draw(i);
        draw(j);
    }
}

即使使用模板,我是否可以在C ++中调用同一类的另一个重载构造函数?

1 个答案:

答案 0 :(得分:2)

不,在C ++中你不能让一个构造函数直接调用另一个(好吧,至少不会超过一次)。但是,您可以让每个构造函数调用第三个执行实际工作的方法。

class draw
{
    draw(circle i)
    {
        do_draw(i);
    }

    draw(circle i, circle j)
    {
        do_draw(i);
        do_draw(j);
    }

    void do_draw(circle c)
    {
        // draw a circle;
    }
}