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

标签 c++ overloading

<分区>

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

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

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

最佳答案

不,在 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;
    }
}

关于c++ - 我可以在 C++ 中调用另一个重载的构造函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30587134/

相关文章:

c++ - 如何使用插入函数和迭代器更改 vector 中的元素?

c++ - 在 qt 中将 git hash 打印为编译时创建的宏

c++ - 我定义了一个非拷贝构造函数;复制构造函数是否仍会被隐式定义?

c++ - Try/Catch block 替换了析构函数中的方法 block

c++ - 为指向两个不同类的指针重载赋值运算符

c++ - 在类模板的成员枚举上重载运算符

c++ - 在类中封装游戏对象

c++ - 为所有字符串类型重载模板函数

c++ - 使用经典重载解析规则创建依赖于 std::invoke 的重载集类

c++ - 使用 SFINAE 检查是否存在非硬连线成员函数