求助,类中类怎么提前声明

狐狸小十 2017-03-01 07:58:20
class C1
{
public:
C2::S m_st;
};

class C2
{
public:
struct S {

};
};

前边的类C1,要引用后边类C2中的结构S,怎么提前声明
--实际上不是这个需求,所以不考虑把C2提前,或者把S提到外边,这里只是把问题简化下
...全文
370 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灸舞 2017-03-01
  • 打赏
  • 举报
回复
对于C++中,类的定义之前声明它,如下实例代码:
class B;
class A{
//..............................
B * ptr_B;.
};
class B{
//....................
};
被提前声明的类在其定义之前,只能使用该类的指针或者引用 。
在类的定义结束(编译器在遇到类定义的右花括号之后),用该类来声明类实例对象,或对象指针,引用都是合法的。
ipqtjmqj 2017-03-01
  • 打赏
  • 举报
回复
引用 2 楼 qq_31709097 的回复:
[quote=引用 1 楼 ipqtjmqj 的回复:] 分成两个头文件,C1的头文件中includeC2
实际需求是这样的,只有一个类

class C:
	CTemplate<S>
{
	struct S
	{

	};
};
[/quote] 不行吧,只能把struct S放到外面
狐狸小十 2017-03-01
  • 打赏
  • 举报
回复
引用 1 楼 ipqtjmqj 的回复:
分成两个头文件,C1的头文件中includeC2
实际需求是这样的,只有一个类

class C:
	CTemplate<S>
{
	struct S
	{

	};
};
ipqtjmqj 2017-03-01
  • 打赏
  • 举报
回复
分成两个头文件,C1的头文件中includeC2
蜡笔小白 2017-03-01
  • 打赏
  • 举报
回复
class xxx;

64,687

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧