2013-12-13 48 views
0

有沒有什麼辦法可以給現有對象的成員一個新的名字,所以這個名字只在當前和/或內部作用域中可見(不使用#define或創建新變量):如何給對象的成員一個新的名字

class foo 
{ 
    public: 
    int verylongclassmembername; 
}; 

foo f; 
// typedef f.verylongclassmembername t; 
// t = 56; 

{ 
    // t = 79; // also visible 
} 
+1

請澄清excatly你想要什麼範圍內的替代名稱。建議的解決方案將在函數範圍內工作,但是隨後您在結構中添加了引用,從而擊敗了「保存內存」的目的。什麼*確切*你想達到什麼效果。 – StoryTeller

回答

4
int &shortRef = f.verylongclassmembername; 
+0

謝謝!創建引用是否意味着內存分配?或者它只是編譯器指令? – Ivars

+1

@ user2543574,在這種情況下,引用將是一個帶有自動存儲的變量(在堆棧上)。雖然編譯器可能會優化它。 – StoryTeller

+0

@StoryTeller有沒有其他方法可以使用像typedef這樣的標準C++指令來實現這一點? – Ivars

相關問題