C ++错误 - <unnamed-tag>匿名联合的成员不允许使用in-cass初始值设定项

时间:2017-01-20 13:56:35

标签: c++ visual-studio-2013

我在这里的第一篇文章,提前谢谢。 我是C ++的新手,正在努力解决这个错误。

"<unnamed-tag>::hasPiece' : an in-class initializer is not allowed for a member of an anonymous union in non-class scope.

当我构建它时会在标题中显示错误

  

df

你能帮我吗?非常感谢

1 个答案:

答案 0 :(得分:0)

在c ++ 98中,您不允许为结构的成员提供默认值,尽管您可以在以后的标准中使用。请改用此方法:

struct TRequest 
{
    TRequest()
      : hasPiece(0)
    {
      // Nothing to do here
    }

    int x;
    int z;
    char ref[20]; // or of other adequate type
    DATE date;
    bool put;
    int hasPiece;
};

请注意,您也应该将所有其他成员初始化,而不仅仅是hasPiece。我还修了一些其他的位,你不需要typedef。

编辑:刚注意到hasPiece是一个int,你为什么把它初始化为假?它应该是一个bool,或初始化为0.我已经改变了我的答案,将其初始化为0.