C++-前向声明的类中内部类型
C++可以使用前向声明来减少多种问题,如下面这个例子。
class A
{};
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
C++可以使用前向声明来减少多种问题,如下面这个例子。
class A
{};
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
前向声明可以在以下几种情况下使用
1)定义指向该类型的指向或者引用
如
class A;
class B
{
A& a;// or A* pa;
};
2) 用于声明使用该类型作为形参类型或者返回类型的函数
如
class A:
class B
{
A& func(A& a);
}
3) 从基类派生时
如
classs A;
class B : public A
{
};
在B.h里include一下,就不用前向声明了。
A.h:
#pragma once
class A
{
public:
typedef int AType;
};
B.h:
#include "A.h"
#pragma once
class B
{
public:
int Test(A::AType *p);
};
如果用前向声明,又没include,在使用时必须先include A.h,再include B.h:
class A
{
public:
typedef int AType;
};
class A;
class B
{
public:
int Test(A::AType *p);
};
#include "A.h"
#include "B.h"
// 必须先A后B
int main(int argc, char *argv[]){return 0;}