本文主要是针对QObject的拷贝构造函数和赋值运算符进行说明。先来看一下拷贝构造函数定义:拷贝构造函数,又称复制构造函数,是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初始化。其唯一的形参必须是引用,但并不限制为const,一般普遍的会加上const限制。此函数经常用在函数调用时用户定义类型的值传递及返回。拷贝构造函数要调用基类的拷贝构造函数和成员函数。如果可以的话,它将用常量方式调用,另外,也可以用非常量方式调用。
在Qt的对象模型中,QObject被当做标识对待,不是值,所以不能复制,这和拷贝构造函数的定义是冲突的,所以OQbject没有拷贝构造函数,或者说QObject的拷贝构造函数不能调用。来,看看代码,加深理解。
拷贝构造函数的一般形式为:T(const T& t)
代码1:
#include <QCoreApplication>
#include <QObject>
int main(int argc, char *argv[])
{
QCoreApplication a(argc,