QPainter painter(this)中的painter是对象么?!

时间:2022-09-10 17:52:56
如题,真的不知道还有这种创建对象的方法。对象后面怎么会带括号?
另外

QPainter painter=new QPainter(this);

QPainter painter(this);
是不等效的,为什么?

7 个解决方案

#1


建议:找本C++的书,先补补课。

#2


你发贴的都会~

#3


QPainter painter=new QPainter(this);
这个写错了吧
QPainter *painter=new QPainter(this);

#4


一个是动态分配内存(在堆上,需要你手动管理),一个是自动内存即局部分配内存(生命周期为当前语句块)。

希望能够帮到你!

#5


当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。
详细的了解一下new关键字,应该会解答你的疑惑。

#6


菜鸟!

#7


c++基础
QPainter painter(this)是构造在栈上的 出了作用域自动析构
new出来的 通过管理指针来自己管理析构 生命范围为全局 除非你自己delete了

#1


建议:找本C++的书,先补补课。

#2


你发贴的都会~

#3


QPainter painter=new QPainter(this);
这个写错了吧
QPainter *painter=new QPainter(this);

#4


一个是动态分配内存(在堆上,需要你手动管理),一个是自动内存即局部分配内存(生命周期为当前语句块)。

希望能够帮到你!

#5


当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。
详细的了解一下new关键字,应该会解答你的疑惑。

#6


菜鸟!

#7


c++基础
QPainter painter(this)是构造在栈上的 出了作用域自动析构
new出来的 通过管理指针来自己管理析构 生命范围为全局 除非你自己delete了