1
的創建對象的&同時假設我有一個程序利用結構
struct node
{
int bot,el;
char name[16];
};
int main()
{
stack <node> S;
node&b = S.top;
return 0;
}
是什麼在node&b
的&
是什麼意思?
的創建對象的&同時假設我有一個程序利用結構
struct node
{
int bot,el;
char name[16];
};
int main()
{
stack <node> S;
node&b = S.top;
return 0;
}
是什麼在node&b
的&
是什麼意思?
首先,你應該解決調用top
:
node &b = S.top() ;
所以在這一點b
現在的別名在堆棧頂部的元素,所以你做出b
將反映的任何變化堆棧中的頂層元素也是如此。參考標準容器中的元素可以是dangerous,因此您瞭解其含義。此代碼演示原則,儘可能接近您的示例代碼儘可能:
int main()
{
std::stack <node> S;
node n1 ;
n1.bot = 10 ;
n1.el = 11 ;
S.push(n1) ;
node a = S.top() ; // a is a copy of top() and changes to a won't be reflected
node &b = S.top() ; // b is now an alias to top() and changes will be reflected
a.bot = 30 ;
std::cout << S.top().bot << std::endl ;
b.bot = 20 ;
std::cout << S.top().bot << std::endl ;
return 0;
}
這意味着'b'是[引用變量](http://www.cprogramming.com/tutorial/references.html )的節點類型。 – Dukeling 2013-05-14 11:12:05
[閱讀有關參考資料](http://www.parashift.com/c++-faq/references.html)。 – BoBTFish 2013-05-14 11:12:11