C ++类格式 - Qt创建者5.2.1

时间:2014-03-06 13:31:26

标签: c++ qt class

我对C ++有点新手,主要处理一些嵌入式C开发,但我对类没有太多帮助。我在Qt示例头文件中看到了这一点:

class QUdpSocket;

这是一个类构造函数吗?我知道QUdpSocket是一个自己的类,在头文件中,是QAbstractSocket类的一部分,但我从来没有遇到过这种方式。这让我感到困惑,有人可以对此有所了解吗?正如我所说,C ++和学习新手......

谢谢: - )

5 个答案:

答案 0 :(得分:2)

它的正确名称是不完整(转发)声明。 不完整的声明不定义任何类成员。在完全定义类之前,您不能声明任何对象或引用此类的成员。

但是,您可以指向此结构,但前提是它们不需要类的大小。

Inclomplete声明用于建议编译器稍后将定义此类,我们现在想在其他类/函数中使用它。如果我们有两个类,其中一个使用另一个类的对象,反之亦然,则此声明是有目的的。

struct first;

struct second{
   first* f;
}

struct first{
   second* s;
}

答案 1 :(得分:1)

这不是构造函数 - 它是一个前向声明。我猜这出现在头文件顶部的某处。程序员经常这样做是为了让编译器尽早知道这个类的存在(以避免错误,因为类名不被识别),然后再声明该类的实际内容。

答案 2 :(得分:1)

这是前瞻性声明。构造函数只不过是一种方法。 C ++中的前向声明允许我们声明方法和类,而无需在给定的时间点指定它们的实际实现,如果需要,可以在以后留下它。在某些情况下,这可以提高代码的可维护性,并帮助我们解决与循环依赖性和性能相关的问题。

完成此操作:Forward declaration

阅读有关C ++类的内容。因为这是C ++开发的一个非常基本的概念。

答案 3 :(得分:0)

这是前瞻性声明,谷歌关于它,你会知道。

答案 4 :(得分:0)

谢谢大家的相关信息。事实证明,我已经使用了程序中的函数来进行前向声明。我从来不知道他们叫什么。感谢所有的答案,感谢您的信息,干杯给所有人!