在类声明中声明指向类对象的指针

Declaring a pointer to a class object within a class declaraion

本文关键字:声明 指针 对象      更新时间:2023-10-16

我不是一个C++爱好者,所以一些简单的事情仍然会让我感到困惑。我正在使用Qt,并试图完成我的Qt项目(它将用于测试我正在原型板上安装的TCP/IP连接)。

在我的主窗口类中,我希望包含指向客户端&当你按下主窗口窗体上的按钮时创建的服务器对象。但当我把声明放在类中时,即使我已经包含了头文件,它看起来也不像是类知道它是什么。

下面是我的主窗口类的一个片段:

private:
    Ui::MainWindow *ui;
    EchoServer *mServer;
    EchoClient *mClient;
...

EchoServer&客户端行出现语法错误,然后缺少类型说明符。

但是,当我在按钮推送事件的mainwindow.cpp文件中放入相同的声明时,没有错误!?这里是该函数的一个片段:

void MainWindow::on_pushButtonConnect_clicked()
{
    const ushort port = 9999;
    EchoServer *mServer;
    EchoServer server((const QString)ui->lineEdit_IP_Addr->text(), port, ui );
    EchoClient client((const QString)ui->lineEdit_IP_Addr->text(), port, ui );
    ...

知道吗,我缺了什么?

您可以简单地在头文件中使用前向声明,如:

class EchoServer;
class EchoClient;
class MyClass
{
private:
    Ui::MainWindow *ui;
    EchoServer *mServer;
    EchoClient *mClient;
};