- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要关于“这个”主题的可靠信息:
class MyClass, public QWidget
{
public:
MyClass( QWidget * parent = NULL )
:QWidget( parent ),
mpAnotherWidget( new QWidget( this ) ){};
private:
QWidget * mpAnotherWidget;
};
当然,在构造器或初始化列表中调用虚函数不是一个好主意。问题是:这段代码可以吗
mpAnotherWidget( new QWidget( this ) )
导致未定义的行为?!如果是这样:为什么?
如果可以,请引用您的消息来源!谢谢!
最佳答案
这取决于 QWidget
对给定的指针执行的操作。只要调用的代码不访问底层对象,就可以传递指向半构造对象的引用或指针。您需要查看 QWidget
的文档以了解它是接触对象还是仅存储指针。
在Qt的特殊情况下,阅读文档,它正在调用QWidget
的构造函数,参数是类型QWidget*
,this
仅用于转换为基指针。在 12.7/3 中保证获取指向基的指针,因为转换的要求是X 的构造以及直接或间接派生自 B 的所有直接或间接基的构造应该已经开始。然后指针被传递给 QWidget
构造函数,它可以以任何它想要的方式使用它,因为基础 QWidget
的构造函数已经在 的构造函数之前完成>mpAnotherWidget
启动。
关于c++ - 在构造函数的初始化列表中使用 "this"对 Qt 特别危险吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29389810/
我已经可以在其中输入一些附加文本了mydomain/wiki/Special:UserLogin。我添加了一句话: In order to apply for an account send an m
有人可以解释以下脚本输出背后的逻辑吗? import numpy if(numpy.dtype(numpy.float64) == None): print "Surprise!!!!" 谢谢
是我还是 gmail bulls**t?在 outlook/浏览器上,我的电子邮件是完美的,但在 gmail 上,2 个表之间有一个空间,为什么?!?图片:http://i.imgur.com/srJ
我是一名优秀的程序员,十分优秀!