fra*_*ji1 8 c++ forward-declaration
我知道我能做到
class Foo;
Run Code Online (Sandbox Code Playgroud)
可能
struct Bar;
Run Code Online (Sandbox Code Playgroud)
和全球职能
bool IsValid(int iVal);
Run Code Online (Sandbox Code Playgroud)
键入的枚举怎么样?在未申报的课程中输入的枚举怎么样?具有未声明的类的函数怎么样?那个未申报的课程中的静态成员怎么样?在未知的命名空间中这些怎么办?我错过了任何可以向前宣布的东西吗?
Joh*_*itb 12
你可以转发声明
如果通过"前向声明"您严格意味着"声明但未定义",您也可以转发声明成员函数.但是一旦声明它们,你就不能在它们的类定义中重新声明它们.您无法转发声明枚举.我不确定我是否错过了什么.
请注意,上面列出的所有前向声明(部分和显式特化除外)都需要使用非限定名称声明,并且成员函数和嵌套类只能在其类定义中声明但未定义.
class A { };
class A::B; // not legal
namespace A { }
void A::f(); // not legal
namespace A { void f(); } // legal
class B { class C; }; // legal
class B::C; // declaration-only not legal
class D { template<typename T> class E; };
template<typename T> class D::E<T*>; // legal (c.f. 14.5.4/6)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3274 次 |
| 最近记录: |