【发布时间】:2021-02-20 22:52:16
【问题描述】:
C++ 新手,但不是 C
是否有一种正确的方式将对象指针传递给通过引用接受对象的函数?
我举了一个例子,我将取消引用的指针传递给方法foo(),但我想知道这是否被认为是良好的 C++ 实践,或者我是否应该做其他事情。
class Entity {
public:
int x;
Entity(int y) {
x = y;
}
};
void foo(Entity& e) {
std::cout << e.x << std::endl;
}
int main()
{
Entity* e = new Entity(5);
foo(*e);
}
【问题讨论】:
-
这段代码对我来说看起来不错,因为它的价值。除了
foo应该采用const Entity& e,因为它不会尝试修改对象。 -
是的,这行得通。但更好的是:
Entity e(5); foo(e);. -
一般来说,如果
NULL是一个有效参数,你只会传递一个指针。相反,如果您的函数期望其参数始终是一个有效对象,则使用引用。
标签: c++ pointers pass-by-reference