另外
QPainter painter=new QPainter(this);
与
QPainter painter(this);
是不等效的,为什么?
7 个解决方案
#1
建议:找本C++的书,先补补课。
#2
你发贴的都会~
#3
QPainter painter=new QPainter(this);
这个写错了吧
QPainter *painter=new QPainter(this);
这个写错了吧
QPainter *painter=new QPainter(this);
#4
一个是动态分配内存(在堆上,需要你手动管理),一个是自动内存即局部分配内存(生命周期为当前语句块)。
希望能够帮到你!
希望能够帮到你!
#5
当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。
详细的了解一下new关键字,应该会解答你的疑惑。
详细的了解一下new关键字,应该会解答你的疑惑。
#6
菜鸟!
#7
c++基础
QPainter painter(this)是构造在栈上的 出了作用域自动析构
new出来的 通过管理指针来自己管理析构 生命范围为全局 除非你自己delete了
QPainter painter(this)是构造在栈上的 出了作用域自动析构
new出来的 通过管理指针来自己管理析构 生命范围为全局 除非你自己delete了
#1
建议:找本C++的书,先补补课。
#2
你发贴的都会~
#3
QPainter painter=new QPainter(this);
这个写错了吧
QPainter *painter=new QPainter(this);
这个写错了吧
QPainter *painter=new QPainter(this);
#4
一个是动态分配内存(在堆上,需要你手动管理),一个是自动内存即局部分配内存(生命周期为当前语句块)。
希望能够帮到你!
希望能够帮到你!
#5
当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。
详细的了解一下new关键字,应该会解答你的疑惑。
详细的了解一下new关键字,应该会解答你的疑惑。
#6
菜鸟!
#7
c++基础
QPainter painter(this)是构造在栈上的 出了作用域自动析构
new出来的 通过管理指针来自己管理析构 生命范围为全局 除非你自己delete了
QPainter painter(this)是构造在栈上的 出了作用域自动析构
new出来的 通过管理指针来自己管理析构 生命范围为全局 除非你自己delete了