![]() |
1
2
使用局部引用是常见的,尤其是在循环体内部,但有一个要求:只有当引用明显地与目标对象一样长时才使用。 这通常不难保证,但这里有一些坏例子:
|
![]() |
2
2
imho,我认为这是一种可以接受的做法(有一些注意事项-见 Roger Pate's 发布)。如果您只是为push_back()调用添加一行代码,那么我认为这是不可接受的。 但是,如果您发现正在取消对指针的引用 许多的 有时,不仅是将它取消引用一次成为一个可接受的引用对象,它还可能是一个性能上的胜利(取决于您的编译器、有问题的代码、月亮的阶段等)。 |
![]() |
3
2
我不认为这是个好做法。指针是C/C++开发和B/C的主要逗留,C/C++编译器对指针所需的去引用语法感到满意。我尽量避免在可能的情况下使用指针(尽管不是出于语法原因),但有时它只是工作的最佳工具。如果您的代码是粗糙的b/c,那么您使用的是指针,我通常会将其反引用到一个函数中,该函数通过引用传递对象,它基本上完成了您所做的工作,但在我看来,它是以一种更优雅的方式完成的。因此,而不是:
我会这样做:
编辑:
其他人提出在循环中使用引用,在循环中指针可能需要多次取消引用。我同意在这些情况下,参考资料是有益的。 |
![]() |
4
1
如果我真的在做指针操作,那么我会留下一个指针。 如果我的指针只是一个nillable引用,那么我将它保留为一个指针。 如果我有把握或想保证指针始终为非零 (即,如果我从方法返回非零对象),则 我用一个引用明确地说明了这一点。 |
![]() |
5
1
根据你提出的代码,我不同意:
是“很难读懂”。它也比你的代码短。所以,尽管我认为定义和使用本地引用没有什么错,但我也不认为你应该制定一个规则来总是这样做。 也许,如果指针代码很难读取,那是因为您缺少了一些使其更简单的技巧。如果你用一个错误的指针代码的例子问另一个问题,你现在用一个引用来修复它,SOER可能会找到其他的修复方法。 |
![]() |
AstralHex · 矩阵乘法代码工作不正常 5 月前 |
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 5 月前 |
![]() |
Die4Toast · 递归调用成员箭头运算符-> 5 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 5 月前 |