qt翻译QPointer
来源:互联网 发布:java 创建线程 编辑:程序博客网 时间:2024/06/01 07:24
原文地址http://no001.blog.51cto.com/1142339/272102QT自己的指
QT自己的指
QPointer 类是一个样板类,提供一个受保护的指针。
#include <QPointer>
Public Functions
QPointer ()
QPointer ( T * p )
QPointer ( const QPointer<T> & p )
~QPointer ()
T *
data () const
bool
isNull () const
operator T * () const
T &
operator* () const
T *
operator-> () const
QPointer<T> &
operator= ( const QPointer<T> & p )
QPointer<T> &
operator= ( T * p )
详细描述:
一个受保护的指针,QPointer<T>,像一个正常的c++的指针T*。当参考对象被摧毁,他是自动置零。T必须是QObject的子类。
受保护的指针是有用的,当你需要存储一个指针到一个QObject。这个QObject被一些其他的对象拥有,因此可能被摧毁,当你仍然保持一个对它的参考。你能安全的测试指针的有效性。
Qt也提供QSharePointer,一个集成的参考分享指针对象。他能被用来保持到一个参考的链接。
例如:
QPointer<QLabel> label = new QLabel;
label->setText("&Status:");
...
if (label)
label->show();
如果这个Qlabel同时被删除,label同时被置零而不是变成一个无效的地址。因此最后一行将绝不运行。
这个带有Qpointer的可变的函数和运算符,是同样的和那些可变的带有一个正常的没有保护的指针,除了那些数学运算(+,-,++,--)。这些只有和数组对象一起才正常。
使用QPointer像正常的指针,你将不需要读类文件。
使用受保护的指针,你能构造或者设置他们从一个T*或者从其他相同类型的受保护的指针。您能比较他们用operator==()和operator!=(),或者测试0用isNull()。你能解除参考用*x或者x->member记号。
一个受保护的指针将要自动的投射到T*,所以你能自由的混合受保护的和不受保护的指针。这意味着如果你有一个Qpointer<QWidget>,你能通过它到一个要求一个QWidget的函数。所以,那是没有意义的宣布函数使用一个Qpointer作为参数,只是使用一个正常的指针。
使用Qpointer当你存储一个过时指针。
注意class T必须继承QObject,否则一个编译或者链接错误将产生。
也看QSharePointer QObject QObjectCleanupHandler
成员函数文件
QPointer::QPointer()
构造一个受保护的指针。
QPointer::QPointer ( T * p )
构造一个受保护的指针,他指向p所指向的相同的对象
QPointer::QPointer ( const QPointer<T> & p )
复制一个受保护的指针从另外一个。
QPointer::~QPointer ()
摧毁一个受保护的指针
T * QPointer::data () const
返回指向受保护对象的指针
bool QPointer::isNull () const
如果参考对象已经被摧毁或者如果没有一个参考对象,返回true
QPointer::operator T * () const
投射运算符。执行指针语义。因为这个函数你能传递一个QPointer<T>到一个函数,哪里一个T*被需要。
T & QPointer::operator* () const
摧毁参考运算符。
T * QPointer::operator-> () const
过载箭头(arrow)操作符;
QPointer<T> & QPointer::operator= ( const QPointer<T> & p )
分配操作符。这个受保护的指针将要指向一个p指向的相同的对象
QPointer<T> & QPointer::operator= ( T * p )
分配运算符。这个受保护的指针将要指向一个p指向的相同的对象
0 0
- qt翻译QPointer
- qt翻译QPointer
- Qt源码分析之QPointer
- Qt源码分析之QPointer
- Qt源码分析之QPointer
- QT学习 -->Qpointer
- Qt源码分析之QPointer
- Qt源码分析之QPointer(转)
- Qt的相关Pointer(1)-----QPointer
- QT鲜为人知的工具类之QPointer
- [Q学习]2 QT中的对象模型——QPointer
- QT翻译
- qt 翻译
- Qt 翻译
- qt翻译
- 继续使用 QPointer
- QPointer的使用浅析
- QT-Linguist Qt翻译工具
- Linux下的四种I/O model
- poj 3253---Fence Repair
- 初识设计模式 chapter 04-工厂模式
- 第五周项目4指向学生类的指针
- Andriod开发 放大缩小功能
- qt翻译QPointer
- bash 学习!
- 指针变量内存
- C语言结构体里的成员数组和指针
- 剑指offer:写出高质量代码
- Windows下使用TortoiseGit实现Git的分支实例
- Qt源码分析之QPointer
- libcurl programming
- 嵌入式 hi3518c,3g-sincom5360e平台pppd成功拨号联通3G示例