我如何重载具有相同类型的构造函数?

问题描述 投票:-1回答:2

例如,我们有一些结构可以用4个数字进行一些数学运算,并且我们想在两个构造函数中使用特定的值来完成某些特定的事情,是否有可能以不使用任何其他值的方式重载构造函数(模式切换)?

struct Coolness
{
    float a = float();
    float b = float();
    float c = float();
    float d = float();

    Coolness(float a, float b)
    {
        /* do stuff here*/ 
    }

此处为相同类型,但值不同

    Coolness(float c, float d)
    {
        /* do other stuff here*/ 
    }
};
c++
2个回答
2
投票
您不能有多个具有相同签名的重载。

一种替代方法是创建为您创建对象的静态方法。例如,如果您创建了自己的Complex类,则可以使用静态方法从实部和虚部创建一个复数,然后可以使用另一个静态方法来创建一个传递绝对值和相位的对象。 >


2
投票
您可以使用标签结构来区分。例如,
© www.soinside.com 2019 - 2024. All rights reserved.