C++-前向声明的类中内部类型

发布于 2017-08-01 01:10:35 字数 101 浏览 1324 评论 2

C++可以使用前向声明来减少多种问题,如下面这个例子。

class A
{};

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

瑾兮 2017-08-14 16:08:32

前向声明可以在以下几种情况下使用
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
{

};

想挽留 2017-08-11 10:59:32

在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;}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文