我需要一些帮助来了解此错误发生的位置:
警告:非静态数据成员的类内初始化是 C++11 扩展 [-Wc++11-extensions]
这是它来自的代码部分:
typedef struct Hand {
bool straight = false;
bool flush = false;
bool four = false;
bool three = false;
int pairs = 0;
} Hand;
这不是错误,而是警告。它告诉您,只允许初始化从 C++11 标准(之所以如此命名,因为它于 2011 年发布)开始的结构/类的非静态成员。在此之前,C++98 并没有正式允许您这样做(您已经猜到,是在 1998 年发布的)。长话短说,你所做的事情直到 2011 年才成为合法的、官方的 C++。你的编译器的默认值似乎是 1998 年的标准。
尝试编译-std=c++11
作为命令行标志(假设您使用的是 GCC 或 clang),并且警告应该消失。如果您使用不同的编译器,也应该有一个标志(如果它足够新以实现 C++11)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)