c++ - 将引用传递给函数是否可以进行内存管理?

标签 c++ sfml

我自己有一个 C++ 函数,它被赋予了一个引用变量,就像这样

public Draw(sfml::RenderWindow& window)
{
    window.draw(Sprite);
}

基本上我将我的 renderwindow 变量作为对我的 drawObject 的引用传递,它有一个称为 Draw 的函数,它接受 renderwindow 引用并绘制图像。

函数完成后,是否会删除窗口引用变量并取消分配内存,或者会永远创建一个引用,并随着越来越多的渲染窗口引用而慢慢占用更多内存?

最佳答案

引用参数(或与此相关的变量)在 C++ 中不计算在内。出于实际目的,引用就像具有不同语法的普通指针,并且它们始终指向有效值(或者您的程序格式不正确并调用未定义的行为)。此外,不能重新绑定(bind)引用(因此在初始化之后,引用始终指向同一个对象)。

因此,与普通指针一样,引用不会强制对象延长生命周期(const type& 绑定(bind)返回的 是一个显着的异常(exception))。与指针一样,您必须注意引用所引用的对象在引用本身存在的任何时候仍然存在。

关于c++ - 将引用传递给函数是否可以进行内存管理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26015064/

相关文章:

c++ - 在 Programming Code to Convert Lowercase to Uppercase why do we use(str[i]>=97 && str[i]<=122)?

c++ - 指针 vector 在调用 size() 和创建迭代器时出现段错误

linux - 无法打开 X11 显示 - 如何在 WSL 上执行 SFML 输出 - 加载 WSL GUI 应用程序

c++ - Boost::带有共享指针的侵入式列表

c++ - 仅接受来自特定 IP 的套接字

c++ - 将 unicode sf::String 传递到 std::filesystem::u8path

c++ - Sublime 上的 EasyClangComplete 有什么用?

C++ 程序在执行 std::string 分配时总是崩溃

c++ - 使用带有 clang 的初始化列表初始化简单结构

c++ - DLL 中显示的对话框在 Qt Creator 项目中具有 Win98/Classic 样式控件,但在 Visual Studio 中主题正确