永发信息网

c++ Qt创建菜单栏代码QMenu写在类成员里面, 还是定义到方法里?

答案:1  悬赏:20  手机版
解决时间 2021-04-07 07:12
  • 提问者网友:蓝琪梦莎
  • 2021-04-06 17:22
c++ Qt创建菜单栏代码QMenu写在类成员里面, 还是定义到方法里?
最佳答案
  • 五星知识达人网友:山河有幸埋战骨
  • 2021-04-06 17:36
是做成临时变量,还是做成类成员,主要还是看你后面还会不会用到这个变量。
通常情况下,尽量使用临时变量,因为临时变量超出了作用域后就会析构。
变量多了,会导致滥用。
如果后面还会用到(比如析构函数)这个变量,而且没有别的途径能够获得这个变量,那么就要做成类成员。
追问:那比如QMenu *menu;作为临时变量的话, 在createMenus()函数外会删除, 那为什么它创建的菜单却还存在?
追答:你的例子里稍有一点不同。
你先创建了一个QMenu指针,指向了一个菜单对象。如果没有后面的代码,QMenu*需要做成类成员(为了析构)。
可是你这里是menuBar()->addMenu()作出来的菜单,这个菜单对象已经在menuBar里了,由menuBar来管理(创建与析构),所以你不需要再保留菜单指针。当你销毁menuBar的时候,内部菜单会自动销毁。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯