gpt4 book ai didi

c++ - C++中new的使用

转载 作者:行者123 更新时间:2023-11-30 00:44:02 25 4
gpt4 key购买 nike

假设我将一个新对象传递给这样的函数:

loadContainer->addControlView( new BmpView( BMP_PICTURE ) );

现在,我想在将 BmpView 传递给 addControlView 之前更改其特定特征。我这样做的方式是这样的:

Control* newView = new BmpView( BMP_PICTURE );
newView->changeColor( WHITE );
loadContainer->addControlView( newView );

这会创建一个额外的临时/本地对象吗?或者在两种情况下是否分配了相同数量的内存?

最佳答案

在你的函数中分配的唯一添加的内存是一个新指针*newView,它的大小非常小并且不受BmpView实际大小的影响。它不会为 BmpView 分配两次内存。

我没有考虑调用 changeColor 的任何内存开销,我认为这不是这个问题的重点。

关于c++ - C++中new的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51187029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com