返回 C 引用变量:好、坏、丑
返回 C 是否“邪恶”的问题引用变量引发了编程界的争论。了解潜在的陷阱和最佳实践可以帮助您做出明智的决定。
问题是什么?
根据一些人的说法,返回引用会增加内存泄漏的风险如果它引用一个在函数调用后被销毁的对象。在以下情况下可能会发生这种情况:
邪恶示例
这些示例说明了危险:
int& getInt() { int i; return i; // DON'T DO THIS }
这将返回对堆栈分配变量的引用,该变量在函数调用后被销毁,从而导致未定义的行为。
int& getInt() { int* i = new int; return *i; // DON'T DO THIS }
这将返回对堆分配变量的引用,但客户端必须使用令人困惑的语法删除手动删除它&reference。
最佳实践
要避免这些问题,请遵循以下准则:
结论
虽然返回引用很方便,但很重要了解潜在的风险。通过遵循上述最佳实践,您可以避免内存泄漏并编写安全且可维护的代码。
以上是返回 C 引用变量何时安全(何时不安全)?的详细内容。更多信息请关注PHP中文网其他相关文章!