在哪里为QMainWindow声明某些Qt对象:在头文件或构造函数中?

时间:2012-02-22 17:44:05

标签: c++ qt declaration header-files

我的主窗口中有几个对象(QMenus,QLabels,QLayouts,中央窗口小部件等),我意识到不需要在主窗口的头文件中声明。相反,可以在主窗口的构造函数中声明它们。

例如,之前:

主页窗口

中的

private:
    QMenu *fileMenu;
    // etc.
在mainwindow.cpp中

MainWindow::MainWindow()
{
    fileMenu = menuBar()->addMenu("File");
    // etc.
}

VS

在mainwindow.cpp中

MainWindow::MainWindow()
{
    QMenu *fileMenu = menuBar()->addMenu("File");
    // etc.
}

如果范围不是问题(例如,除了在mainwindow的构造函数中创建它之外,我不需要访问fileMenu),我在哪里声明它是否重要?这种情况是否有“最佳实践”?

我对Qt / C ++比较陌生,我意识到这可能更像是一个C ++问题,而不是Qt问题。

1 个答案:

答案 0 :(得分:2)

通常的规则是对您声明的每个变量使用最小范围。

所以,你最好不要让它们成为类成员(不要在头文件中声明它们)。