当我尝试将myCurrentTry初始化为1,将myMaxTries初始化为5时,我遇到了一个警告,错误是:
非静态数据成员的类内初始化是C++11扩展-Wc++11-扩展。
实现这一目标的代码是:
class starUFO{
public:
void Reset();
int getMaxTries();
int getCurrentTry();
bool isGameWon();
bool checkGuessValidity(string);
private:
int myCurrentTry = 1;
int myMaxTries = 5;
};我听人们说过“尝试用-std=c++11编译”,这确实消除了命令行中的警告,但我希望修复VS代码配置,这样它就不会将其视为警告,我有最新的VS代码,但似乎还有一个更深层次的问题。
发布于 2018-05-24 03:38:25
编写构造函数并在那里初始化成员变量:
class starUFO
{
private:
int myCurrentTry;
int myMaxTries;
public:
starUFO()
: myCurrentTry(1),
myMaxTries(5)
{
}
...
};发布于 2019-09-01 03:20:50
要告诉VSCode您使用的是哪个C++标准,请打开命令调色板(Ctrl+Shift+P),选择"C/C++:编辑配置(UI)",向下滚动并更改"C++标准“下拉列表。在这种情况下,选择"c++11“或更高版本。
这假设您使用的是"IntelliSense“引擎,而不是旧的”标记解析器“引擎:转到文件→Preferences→Settings→C/C++→"C_Cpp: Intelli Sense Engine",并确保将其设置为”默认“。
这些选项存在于VSCode 1.37.1和C/C++扩展 0.25.1 (a.k.a )中。"cpptools")我不知道他们是什么时候被介绍的。
https://stackoverflow.com/questions/50500482
复制相似问题