繁体   English   中英

头文件中的“类示例”是什么意思?

[英]What does “class example;” mean in a Header File?

我有一个真正令我困惑的问题!

让我们在这里观看这段代码:

#ifndef HEADER_H
#define HEADER_H
#include <iostream>

class example;
class anything_else;

class A {
      public:
           A();
};

...

什么是class example; 并为class anything_else; 是的,而class A {}; 被宣布? 在CPP文件中,我看到了像void example::release() { ... }这样的定义,依此类推...

我真的很困惑,有人在class example;有示例class example; ...?

什么是class example; 并为class anything_else; 意思

它们是class exampleanything_else声明。 他们告诉编译器那些是有效的类名。 这种声明被非正式地称为“转发声明”。

class A {}; 被宣布?

class A定义

在CPP文件中,我看到了像void example::release() { ... }这样的定义,依此类推...

那就是函数example::release的定义。

example定义的某处,有函数的声明:

class example
{
// ...
    void release(); // declaration
};

如果仅声明了example且未定义,则example::release的定义将导致编译错误。

如果要具有尚未包含的类型的成员变量,请对该类型进行前向声明

class X;

forward声明了类X,因此在我们的类声明中可以有一个指向该类的指针。

class Y
{
...
  X* p;
};

稍后,您必须在.cpp文件中的某个位置提供类的定义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM