找回密码
 立即注册
收起左侧

为什么构造函数可以声明定义一个布局类

1
回复
7309
查看
[复制链接]
累计签到:14 天
连续签到:1 天
来源: 2017-3-3 17:11:14 显示全部楼层 |阅读模式
1Qter豆
在一个类的构造函数里,声明定义了一个布局比如QHBoxLayout *layout=new QHBoxLayout。但是这么做的话不是在对象构造出后,layout就被自动析构了么?那布局就不存在了啊。平时写代码都把布局对象放在.h文件,设置为private,不是么。这两者有什么区别?

最佳答案

查看完整内容

你想说的代码应该是这样的: 1、layout就算给m_pLayout,也不会析构,具体为什么自己看看new对象的概念。 2、m_pLayout是private,是类封装的概念。和layout比起来,你可以认为layout是一个局部变量,而m_Layout是一个类中的全局变量。 3、究竟对象析构还是不析构,看new的概念。
回复

使用道具 举报

累计签到:25 天
连续签到:1 天
2017-3-3 17:11:15 显示全部楼层
你想说的代码应该是这样的:
  1. class Test
  2. {
  3. public:
  4.     Test()
  5.     {
  6.         layout = new Layout();
  7.         m_pLayout = layout;
  8.     }
  9. private:
  10.     m_pLayout;
  11. }
复制代码

1、layout就算给m_pLayout,也不会析构,具体为什么自己看看new对象的概念。
2、m_pLayout是private,是类封装的概念。和layout比起来,你可以认为layout是一个局部变量,而m_Layout是一个类中的全局变量。
3、究竟对象析构还是不析构,看new的概念。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了