爲什麼我不能確定這個功能,錯誤參考預選賽
int *clone() const &
{
return new int(10);
}
或
int x;
int *clone() const &&
{
return new int(std::move(x)) ;
}
我應該能夠添加const修飾功能。我是否應該包含任何標題?
爲什麼我不能確定這個功能,錯誤參考預選賽
int *clone() const &
{
return new int(10);
}
或
int x;
int *clone() const &&
{
return new int(std::move(x)) ;
}
我應該能夠添加const修飾功能。我是否應該包含任何標題?
因爲函數名稱後的任何限定符都適用於此指針。 如果你想定這個指針
你應該只是不超載:INT *的clone()const的
那麼我什麼時候使用引用限定符? –
@TamimAdDari函數名後?永遠不要 – kassak
@kassak是正確的 你不能重載函數使用eference限定符後功能名稱,就是這個指針 –
我是新來的C++,我和你有同樣的錯誤。 我編譯了來自C++ Primer 5th Edition的示例代碼,該代碼描述了引用限定符。但是,我的GNU編譯器向我顯示錯誤。我想現在的編譯器不支持C++ 11中引入的這個新特性。而且似乎沒有多少人知道這一點,因爲很少有信息可以在互聯網上找到。也許以後的編譯器會支持這個功能。
許多C++ 11功能尚未得到支持......我以前見過一些功能。
這是示例代碼的一部分,類似於你:
Foo sorted() &&;
Foo sorted() const &
謝謝,唯一有點道理的人。 upvoted。 –
什麼是'&'和''&&應該做的嗎? –
Luchian Grigore說。另外,如果x是一個成員變量而clone()是一個const方法,那麼如果允許編譯(因爲它允許修改x),std :: move(x)將違反const正確性。 – Medinoc
而不是返回一個int指針,它可能更好地返回int本身 – Enigma