稍后创建QScopedPointer的实例

Moh*_*ani 4 qt pointers qscopedpointer

例如,这是我的代码

QScopedPointer<QTimer> timer2(new QTimer);
Run Code Online (Sandbox Code Playgroud)

但我想定义

QScopedPointer<QTimer> timer2; 
Run Code Online (Sandbox Code Playgroud)

在mainwindow.h中创建一个实例

timer2(new QTimer);
Run Code Online (Sandbox Code Playgroud)

在mainwindow.cpp中

怎么样?

RA.*_*RA. 8

请尝试以下方法:

// mainwindow.h
class MainWindow : public QMainWindow
{
private:
    QScopedPointer<QTimer> timer2;
};
Run Code Online (Sandbox Code Playgroud)

如果要在构造函数中创建实例,请使用以下命令:

// mainwindow.cpp
MainWindow::MainWindow()
    :timer2(new QTimer)
{
}
Run Code Online (Sandbox Code Playgroud)

或者,如果要在某个任意成员函数中创建实例MainWindow,请使用以下命令:

// mainwindow.cpp
void MainWindow::someFunction()
{
    timer2.reset(new QTimer);
}
Run Code Online (Sandbox Code Playgroud)

还值得回顾一下C++中的初始化列表和文档QScopedPointer.