Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 指针作为类变量Qt_C++_Qt - Fatal编程技术网

C++ 指针作为类变量Qt

C++ 指针作为类变量Qt,c++,qt,C++,Qt,当您刚刚创建Qt应用程序时,它会自动为您创建主窗口,我对所有内容都非常了解,除了私有的最后一件事:范围 #include <QMainWindow> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); priv

当您刚刚创建Qt应用程序时,它会自动为您创建主窗口,我对所有内容都非常了解,除了私有的最后一件事:范围

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
};
#包括
名称空间用户界面{
类主窗口;
}
类主窗口:公共QMainWindow
{
Q_对象
公众:
显式主窗口(QWidget*parent=0);
~main窗口();
私人:
Ui::MainWindow*Ui;
};
谁能解释一下那是什么类型的指针和它的用途是什么?据我所知,它是一个空指针“for future”,类型是类MainWindow,所以这意味着这个成员是它自己的类中的一个对象,对吗


另外,创建名称空间Ui需要什么?

这是指向自动生成类的指针(基于Qt设计器创建的.Ui文件,或者更准确地说是-uic.exe)。您需要它来访问您在设计器中放置在表单上的小部件(因为您没有在代码中手动创建它们)


除此之外,没什么特别的。只是指向某个前向声明类的指针(在您的例子中,该类将在ui_MainWindow.h中定义)。它有自己的名称空间,不会与类冲突。

这是指向自动生成的类的指针(基于Qt设计器创建的.ui文件,或者更准确地说是-uic.exe)。您需要它来访问您在设计器中放置在表单上的小部件(因为您没有在代码中手动创建它们)


除此之外,没什么特别的。只是指向某个前向声明类的指针(在您的例子中,该类将在ui_MainWindow.h中定义)。它有自己的名称空间,不会与您的类冲突。

因此我假设我可以删除由Qt创建的无用名称空间?您不应该删除名称空间,那么MainWindow.cpp将不会编译(因为您的编译器不知道该类,因为生成的文件不包括在内)@Engelard从某种意义上说,这是为您的UI live生成的类。因此,除非同时更改自动生成的文件,否则无法将其删除,该文件将在下次更改时被覆盖。所以我建议你不要这样做。此外,名称空间没有问题,删除它不会有任何帮助,除非你对名称空间怀有无法解释的怨恨。所以我假设我可以删除Qt创建的无用名称空间?你不应该删除名称空间,那么MainWindow.cpp将不会编译(因为编译器不知道该类,因为生成的文件不包括在内)@Engelard从某种意义上说,这是为您的UI live生成的类。因此,除非您还更改了自动生成的文件,否则无法删除它,这将在下次更改时被覆盖。因此,我建议您不要这样做。此外,名称空间没有问题,删除它不会有任何帮助,除非您坚持这样做我对名称空间有着难以解释的怨恨。