c++ - 在 C++ 中使用 new
问题描述
假设我将一个新对象传递给这样的函数:
loadContainer->addControlView( new BmpView( BMP_PICTURE ) );
现在,我想在将 BmpView 的特定特性传递给 addControlView 之前对其进行更改。我这样做的方式是这样的:
Control* newView = new BmpView( BMP_PICTURE );
newView->changeColor( WHITE );
loadContainer->addControlView( newView );
这会创建一个额外的临时/本地对象吗?或者在这两种情况下分配的内存量是否相等?
解决方案
在您的函数中分配的唯一添加的内存是一个新指针*newView
,它的大小非常小,并且不受 BmpView 的实际大小的影响。它不会为 BmpView 分配两次内存。
我没有考虑 call 的任何内存开销changeColor
,我认为这不是这个问题的重点。
推荐阅读
- primeng - 使用 Id 在 PrimeNG 下拉列表中进行选择
- javascript - 点分隔字符串数组中的树
- python - 如何将过山车微分方程映射到scipy?
- angular - 角度反应形式电话号码模式验证
- java - Google Java 格式 + 验证 Google Java 格式组合不能正常工作 Gradle
- python - 如何在不使用命令行创建mp3文件的情况下使用python读取声音中的字符串
- python - 未定义的符号:导入 pyquery 时的 xsltGetProfileInformation
- reactjs - React 组件并非每次都在网站上呈现
- python - 为什么我的 Python Gmail Bruteforce 没有登录帐户
- linux - apt-get 安装问题