【发布时间】:2021-08-08 11:12:03
【问题描述】:
我不明白指针类型的引用是如何工作的。
-
有什么性能差异吗?
-
如果他们编译有任何汇编级别的差异吗?
-
指针类型有什么引用点吗?
vector<Figure*> vFigureList;
//auto&
for(auto& pFigure : vFigureList)
{
pFigure->draw();
delete pFigure;
}
//auto
for(auto pFigure : vFigureList)
{
pFigure->draw();
delete pFigure;
}
//Figure*
for(Figure* pFigure : vFigureList)
{
pFigure->draw();
delete pFigure;
}
//Figure*&
for(Figure*& pFigure : vFigureList)
{
pFigure->draw();
delete pFigure;
}
【问题讨论】:
-
在你的例子中,当你使用引用时,你告诉编译器:我的意思是那个!当不使用引用时,你告诉它:I意思是那个副本!这是两个非常不同的东西。
标签: c++ pointers reference pass-by-reference auto