首页 > 解决方案 > 如何调用类成员的构造函数?

问题描述

我想声明一个QGraphicsView具有先前声明的成员的 a 作为构造函数的参数,但编译器将它解释为一个函数。

(代码供参考)

class Widnow : public QMainWindow
{
    Q_OBJECT

    // constructors, member functions, etc...

private:
    Ui::Widnow *ui;
    QTimer timer01;
    QGraphicsScene gaem;
    QGraphicsView wiev(&gaem); //this gets interpreted as a function
}

尝试调用构造函数QGraphicsView wiev = QGraphicsView(&gaem);也会导致错误,因为复制构造函数已被删除......有没有办法声明这个成员没有错误?

标签: c++qtqt5

解决方案


C++ 编译器认为它是一个方法声明,其中“wiev”作为返回 QGraphicsView 实例的方法。使用这种方式

class Widnow : public QMainWindow
{
 private:
    QGraphicsScene gaem;
    QGraphicsView wiev; //this gets interpreted as a function

   public:
     Widnow() : wiev(&gaem)
     {}
};

推荐阅读