QObject与其的派生类之间的转换?该如何处理

QObject与其的派生类之间的转换?
有这么一个类:
C/C++ code

//a.h
class A :public QObject
{
       Q_OBJECT
       public:
          A(QObject *parent=0);
          void fun1();
          void fun2();
      private:
            int x;
            int y;
};

//a.cpp
A::A(QObject *parent):QObject(parent),x(1),y(2){}

void A::fun1()
{
        A  a=*this; //这么搞会出现错误:QObject::QObject(const QObject&)是私有的
        a.fun2();
}

void A::fun2() {.....}


有什么解决的办法!!!


------解决方案--------------------
改成 A *pa = this 应该是OK的,具体原因我也说不上来,查一下父类子类对象间的转换关系。
------解决方案--------------------
添加拷贝构造函数:
C/C++ code

A(const A& a)
    {
        x = a.x;
        y = a.y;
    }