只是想知道...使用對象標識符作爲變量名
與C++周圍玩,我發現,如果你創建一個名爲circle
類,然後聲明恰好命名爲類的名稱變量,編譯器不抱怨。例如:
class circle {
// whatever it does in here
};
circle circle; // is a valid statement, but
circle *circle = new circle(); // gives you a 'circle' is not a type complain
事實證明,這適用於字符串string =「string」;以及。並嘗試與Java,也可能。我想它可能也適用於C#,但我沒有嘗試過。
有誰能告訴我背後的原因以及這是否是故意的功能?
'circle * circle = new circle();'這難道不會讓你有點神祕嗎? – Wug
它的確如此。我想知道爲什麼「圈子圈子」被允許工作。 – user1144762
在(幾乎)所有上下文中,編譯器都可以推導出哪些是標識符,哪些是類型。所以是的,這是一個有意圖的功能。 –