自己继承自己

boost_j 2006-01-25 07:21:38
那例子提问:
好比
class good:good
{int a;}
在第一个good 中继承了第二个good 但这个good
还没创建 我的编译器能通过
请问一下 这是怎会事
能把原理说一下么?
...全文
144 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Muf 2006-01-25
  • 打赏
  • 举报
回复
BTW:
我常用这种手段故意弄出一些编译时的错误信息来,如:
template<typename T>
class MustBeInt
{
A(){THIS_IS_NOT_INT_TYPE_PLEASE_CHECK_AGAIN;}
};

这样,你只要实例它这个类,就会出现 THIS_IS_NOT_INT_TYPE_PLEASE_CHECK_AGAIN 变量未定义的错误。这就间接传递出我造的错误信息来啦。
Muf 2006-01-25
  • 打赏
  • 举报
回复
哦,是模板类啊。
模板类在编译时,只要不实例化,它有什么错误,都不会理你的。哪怕你出现比这个更多,更不可思意的错误,只要不实例化,编译器都只当没看见。
如:
tempalte<typename T>
class A
{
A(){sdlkfjsldfjsdfjsalfdjsaldfjsldfjsdlfjsdlfja;}
};
Jinhao 2006-01-25
  • 打赏
  • 举报
回复
template<class T> class good: good ??后面这个good是什么?
{
int a;
};

template<class T> class good: good<T> //应该这样吧
{
int a;
};

这个good的确可以通过,但就是不能实例化,因为good<T>是不完整的
wenwenwen 2006-01-25
  • 打赏
  • 举报
回复
模版类,如下
template<class T> class good:good
{
int a;
};

编译可以通过。
Muf 2006-01-25
  • 打赏
  • 举报
回复
d:\Test\TTTthis\TTTthis.cpp(40) : error C2499: “good” : 类不能是其自身的基类

因此,你的那个good可能是其它地方有特别定义。

64,637

社区成员

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

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