在哪里为QMainWindow声明某些Qt对象:在头文件或构造函数中
Where to declare certain Qt objects for the QMainWindow: in header file or in constructor?
在我的主窗口中有几个对象(QMenus、QLabels、QLayouts、中央小部件等),我意识到它们不需要在主窗口的头文件中声明。相反,可以在主窗口的构造函数中声明它们。
例如,之前:
在主窗口.h 中
private:
QMenu *fileMenu;
// etc.
在主窗口.cpp 中
MainWindow::MainWindow()
{
fileMenu = menuBar()->addMenu("File");
// etc.
}
与。
在主窗口.cpp 中
MainWindow::MainWindow()
{
QMenu *fileMenu = menuBar()->addMenu("File");
// etc.
}
如果作用域不是问题(例如,除了在主窗口的构造函数中创建fileMenu之外,我不需要在任何地方访问它),那么在哪里声明它有关系吗?对于这种情况,是否有"最佳实践"?
我对Qt/C++比较陌生,我意识到这可能更像是一个C++问题,而不是Qt问题。
对于您声明的每个变量,使用尽可能小的作用域是常见的规则。
所以,最好不要让它们成为类成员(不要在头文件中声明它们)。
相关文章:
- 类中的数组变量C++导致"was not declared in this scope"实现文件的一个函数中错误,但在构造函数中不会导致错误
- 如何从另一个文件调用类构造函数?
- 如何使输入文本文件成为构造函数参数?c++
- C++ 在头文件或构造函数中初始化 const 类成员变量?
- C++头/实现文件中的默认和重载构造函数?
- 文件中定义的 Constexpr 构造函数.cpp会导致链接错误
- 如果类划分为单独的文件,则不调用默认构造函数
- 将单独的头文件和类定义文件链接到主函数文件 - G++ 返回重载"undefined reference to"构造函数
- 从文件实例化:构造函数采用std:ifstream&作为参数
- 如何使用类构造函数从文件中获取值?C++
- 打开不存在的文件时如何使流构造函数失败?
- 如何解析文本文件并使用构造函数中的文件输入来创建对象的容器
- 我想传入文件的构造函数模式
- 找不到构造函数 - 如何将 CPP 文件添加到 Qt 构建过程
- 如何将模板构造函数专用化移动到 cpp 文件
- 具有POSIX文件描述符对象的C 复制构造函数
- 从类构造函数中的txt文件读取
- 如何将显式声明的构造函数分离到 .h 和 .cpp 文件中?
- 将文件传递给构造函数进行读取
- 确认从类构造函数中的文本文件初始化变量