为什么我看到“与类同名的成员函数必须是构造函数”?

时间:2019-01-23 20:53:39

标签: c++ constructor compiler-errors

我有一个有用的功能,希望将其从独立的实用程序转换为RAII风格的帮助程序类。在粘贴函数代码并将其重命名之前,我对类的定义一直很好。此时,函数名称用红色下划线标出,并且工具提示显示“与其类名称相同的成员函数必须是构造函数”。

此错误消息没有帮助。我知道,我无法编写与该类同名的函数(这就是为什么建议的重复对我没有太大用处的原因)。我想要将其用作构造函数。为什么不呢发生了什么事?

之前:

void Useful( int Param ) // works, and is useful
{
    // do useful things
}

之后:

class Useful
{
    void Useful( int Param ) // generates error
    {
        // do useful things
    }
};

1 个答案:

答案 0 :(得分:3)

问题是剪切和粘贴错误。返回类型的存在阻止了将函数解释为构造函数。

所以:

class Useful
{
    Useful( int Param ) // problem solved
    {
        // do useful things
    }
};