子类继承父类,父类是否可以前向声明?

jxfengzi 2010-12-27 06:16:51


class A;

class AA : public A
{
...;
}



如上代码,前向声明A,AA继承A,可是编译出错,请问,是否可以这样用?
...全文
279 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
luciferisnotsatan 2010-12-28
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 pengzhixi 的回复:]

不好意思,A的定义一定需要放到派生类的前面,因为派生类需要知道A的大小。
[/Quote]
正解

虽然先声明了A,但此时还不知道A的具体大小,因此AA也没法定义
pengzhixi 2010-12-28
  • 打赏
  • 举报
回复
不好意思,A的定义一定需要放到派生类的前面,因为派生类需要知道A的大小。
  • 打赏
  • 举报
回复
继承的时候需要知道基类的详细信息
nicklisir 2010-12-27
  • 打赏
  • 举报
回复

class A;

class AA : public A
{
...;
}

A类的定义放这里;关键是编译器要找到A的定义
pengzhixi 2010-12-27
  • 打赏
  • 举报
回复
是可以前向生命的,但是要注意,派生类的成员函数要放到基类的定义之后
就想叫yoko 2010-12-27
  • 打赏
  • 举报
回复
如果不是继承而是AA里面有一个A的指针型数据成员倒是可以
ryfdizuo 2010-12-27
  • 打赏
  • 举报
回复
前向申明不行的,
class A
{
public:
// . ..
}

//或者
#include "A.h"

class AA : public A
{
...;
}



jxfengzi 2010-12-27
  • 打赏
  • 举报
回复
error C2504: 'AA::A' : base class undefined
_JeffreyWu 2010-12-27
  • 打赏
  • 举报
回复
出什么错?
jxfengzi 2010-12-27
  • 打赏
  • 举报
回复
父类已经定义,我是想编译的时候能加快速度,链接的时候真正才链接父类的代码。这样做不行吗?
無_1024 2010-12-27
  • 打赏
  • 举报
回复
你要先定义父类 然后才能调用

64,652

社区成员

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

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