想象一下函數(RetrieveResult
),通過指針/引用/值返回對象 - 我不知道也不想知道,因爲事情可能會改變。我只是想使用auto
來存儲結果,並保護該對象免受當前範圍內的意外更改,或者例如,如果對象向上傳播。const auto和對象常量
這是很直觀的只是寫:
const auto result = RetrieveResult();
,一切工作正常,如果RetrieveResult
通過值或引用返回一個對象。但是,如果函數返回一個指針,那麼常量將應用於該指針,而不是指向該指針所指向的對象。我仍然可以改變對象的方式。寫
const auto const result = ....
導致編譯錯誤:
duplicate 'const'
當然,我可以聲明變量是這樣的: 常量自動* ... 常量自動* const的...
但這種方式使我接近指針,即它不是一個通用的解決方案。
是否有可能保持真正的恆定性,並在同一時間提供靈活性(具體類型的獨立性)?
「我不想也不想知道」如果你不知道它是什麼,你該如何訪問這個對象?對於你所知道的,它可能是一個重載了' - >'的類,你認爲它是一個指針:P – Rakete1111
@ Rakete1111,例如,我可能只是轉發對象,而不接觸它 – Alexey
@Alexey如果你轉發它爲什麼你關心它指向的指針是否是'const'? – Rakete1111