[英]c++ standard two different declarations
為什么在c ++標准(我看cpp參考站點)中允許兩個具有相同簽名的變體?
例如:
reference front();
const_reference front() const;
尾隨const
是簽名的一部分。 假裝隱含的this
是明確的:
reference front( This *this);
const_reference front(const This *this);
顯然,參數列表是不同的。
兩個具有相同簽名的變體
這是一種常見的誤解。 簽名末尾的const
是簽名的一部分。
例如,它可以用於返回對包含數據的引用的容器類。 const
版本返回一個const
引用,因此無法通過該引用修改該數據。
因為第二個函數中的const
計為簽名的一部分。
const_reference front() const;
// ^^^^^
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.