簡體   English   中英

c ++標准兩種不同的聲明

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM