3
我用克利翁作爲IDE,它報告在IDE作爲不同betwee {}和=當C++ 11初始化變量
字段z中的一個錯誤,必須初始化
它可以編譯並運行。但是如果我將const int z{3};
更改爲const int z=3;
,則IDE中不會報告任何錯誤。我的問題是這是否確實是我的代碼錯誤,或者它只是IDE中的一個錯誤?這兩種初始化方法有什麼區別?你的IDE報告了這個錯誤嗎?
#include <iostream>
using namespace std;
class Test
{
private:
const int x = 3;
int y;
const int z{3};
public:
Test(int);
int gety(){
return y;
}
};
Test::Test(int a){
y=x+4;
}
int main()
{
Test test(5);
std::cout << test.gety() << std::endl;
return 0;
}
你在編譯時看到了這個嗎?如果是這樣,你使用的是哪種編譯器? –
我在編譯期間沒有看到這個。代碼可以編譯並運行。它僅在IDE中報告。對於IDE,只需使用int'z {3}'或將其更改爲'const int z = 3',一些方法可以修復它,例如刪除const。如果您複製並將上述代碼複製到您的編譯器或IDE,您是否可以看到問題?這是一個真正的錯誤還是IDE錯誤? – drbombe
您的代碼有效。 –