如何在没有复制构造函数的情况下初始化类的静态实例>

Srv*_*v19 3 c++ qt static initialization c++14

我有没有复制构造函数或赋值运算符的类.我需要创建并初始化该类的实例.我怎么做?

代码有问题(例子):

class Q
{
    int w;
    public:
    Q():w(19){};
    Q(const Q&) = delete;
    Q& operator = (const Q&) = delete;

    static Q sQ;
};

Q Q::sQ = Q();
Run Code Online (Sandbox Code Playgroud)

关于意识形态

用例:我有一个派生自的类,QObject因此删除了赋值运算符和复制构造函数.应该有一个类的静态实例,如何实现?

Nat*_*ica 5

您可以使用统一初始化语法,并使用一组空花括号构造类

Q Q::sQ{};
Run Code Online (Sandbox Code Playgroud)

或者你甚至可以放下花括号,如:

Q Q::sQ;
Run Code Online (Sandbox Code Playgroud)

两者都将默认构造sQ.