"class example;" 在头文件中是什么意思?
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;
的例子吗?
What does class example;
and class anything_else;
mean
它们是 classes example
和 anything_else
的声明。它们告诉编译器这些是有效的 class 名称。这种声明被非正式地称为 "forward declaration".
while class A {};
gets declared?
class A
获得 定义 。
Inside the CPP File i saw definitions like void example::release() { ... }
and so on...
这就是函数的定义example::release
。
在example
定义的某处,有函数的声明:
class example
{
// ...
void release(); // declaration
};
如果example
只是声明而没有定义,那么example::release
的定义会导致编译错误。
如果您想要拥有尚未包含的类型的成员变量,您可以执行该类型的前向声明。
class X;
forward 声明了 class X 这样你就可以拥有一个。例如在我们的 class 声明中指向 class 的指针。
class Y
{
...
X* p;
};
稍后您必须在 .cpp 文件中的某处提供 class 的定义。
我有一个问题让我很困惑!
让我们在这里观看这段代码:
#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;
的例子吗?
What does
class example;
andclass anything_else;
mean
它们是 classes example
和 anything_else
的声明。它们告诉编译器这些是有效的 class 名称。这种声明被非正式地称为 "forward declaration".
while
class A {};
gets declared?
class A
获得 定义 。
Inside the CPP File i saw definitions like
void example::release() { ... }
and so on...
这就是函数的定义example::release
。
在example
定义的某处,有函数的声明:
class example
{
// ...
void release(); // declaration
};
如果example
只是声明而没有定义,那么example::release
的定义会导致编译错误。
如果您想要拥有尚未包含的类型的成员变量,您可以执行该类型的前向声明。
class X;
forward 声明了 class X 这样你就可以拥有一个。例如在我们的 class 声明中指向 class 的指针。
class Y
{
...
X* p;
};
稍后您必须在 .cpp 文件中的某处提供 class 的定义。