有沒有什麼辦法可以給現有對象的成員一個新的名字,所以這個名字只在當前和/或內部作用域中可見(不使用#define或創建新變量):如何給對象的成員一個新的名字
class foo
{
public:
int verylongclassmembername;
};
foo f;
// typedef f.verylongclassmembername t;
// t = 56;
{
// t = 79; // also visible
}
有沒有什麼辦法可以給現有對象的成員一個新的名字,所以這個名字只在當前和/或內部作用域中可見(不使用#define或創建新變量):如何給對象的成員一個新的名字
class foo
{
public:
int verylongclassmembername;
};
foo f;
// typedef f.verylongclassmembername t;
// t = 56;
{
// t = 79; // also visible
}
int &shortRef = f.verylongclassmembername;
謝謝!創建引用是否意味着內存分配?或者它只是編譯器指令? – Ivars
@ user2543574,在這種情況下,引用將是一個帶有自動存儲的變量(在堆棧上)。雖然編譯器可能會優化它。 – StoryTeller
@StoryTeller有沒有其他方法可以使用像typedef這樣的標準C++指令來實現這一點? – Ivars
請澄清excatly你想要什麼範圍內的替代名稱。建議的解決方案將在函數範圍內工作,但是隨後您在結構中添加了引用,從而擊敗了「保存內存」的目的。什麼*確切*你想達到什麼效果。 – StoryTeller