Laz*_*ano 0 c++ oop syntax class header-files
我有一个关于真正让我困惑的事情的问题!
我们在这里看一下这段代码:
#ifndef HEADER_H
#define HEADER_H
#include <iostream>
class example;
class anything_else;
class A {
public:
A();
};
...
Run Code Online (Sandbox Code Playgroud)
是什么class example;和class anything_else;意味着,虽然class A {};被宣布?在CPP文件中,我看到了诸如此类的定义void example::release() { ... }......
我真的很困惑,有没有人有class example;...... 的例子?
问候!
是什么
class example;和class anything_else;意味着
它们是类example和的声明anything_else.它们告诉编译器这些是有效的类名.这种声明被非正式地称为"前瞻性声明".
什么时候
class A {};被宣布?
class A得到定义.
在CPP文件中,我看到了诸如此类的定义
void example::release() { ... }......
这是函数的定义example::release.
在定义的某处example,有函数的声明:
class example
{
// ...
void release(); // declaration
};
Run Code Online (Sandbox Code Playgroud)
如果example仅声明且未定义,则example::release在编译错误中定义结果.