函数后面是0 什么意思

lly212 2009-08-07 11:09:58
举个例子
virtual void a() = 0;
他说是说明这个纯虚函数一定不会被调用 我希望能给一个更详细的解释
...全文
325 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
leizhe 2009-08-07
  • 打赏
  • 举报
回复
定义成纯虚函数 只要是控制在基类 与派生类中的之间的关系
定义成纯虚函数之后 要在派生类 继续完成该函数就可以调用了
abcdef0966 2009-08-07
  • 打赏
  • 举报
回复
他说是说明这个纯虚函数一定不会被调用??
啥意思?


virtual void a() = 0;
纯虚函数
是一个在基类中说明的虚函数,它在基类中没有定义具体的操作内容,要求各派生类根据实际需要定义自己的函数操作。
声明为纯虚函数之后,基类就不能给出函数的实现部分。函数体有派生类给出

如果派生类给出所有纯虚函数的函数实现,这个派生类就可以声明自己的对象,反之,这是的派生类仍不能实例化,即不能声明对象。

带有纯虚函数的类是抽象类,抽象类不能实例化,但是,可以声明一个抽象类的指针和引用。这样,我们就可以通过指向并访问派生类对象,进而访问派生类的成员,这种访问时具有多态性质的

lvbinandylau 2009-08-07
  • 打赏
  • 举报
回复
龟腚了
liuwg9999 2009-08-07
  • 打赏
  • 举报
回复
不能写void a()=0;这样的函数,不过函数指针倒是可以

[Quote=引用 17 楼 lly212 的回复:]
那你就当我不知道好了  我现在问你啊
除了多态其他的函数能不能也写成 void a() { //具体实现; } = 0 ;
你见过没有 你能给我一个你觉得对的答案不
[/Quote]
abcdef0966 2009-08-07
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 lly212 的回复:]
那你就当我不知道好了  我现在问你啊
除了多态其他的函数能不能也写成 void a() { //具体实现; } = 0 ;
你见过没有 你能给我一个你觉得对的答案不
[/Quote]

不行啦,至少我没见到过
我啃 2009-08-07
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 lly212 的回复:]
那你就当我不知道好了  我现在问你啊
除了多态其他的函数能不能也写成 void a() { //具体实现; } = 0 ;
你见过没有 你能给我一个你觉得对的答案不
[/Quote]
1.不要随便挂“多态”,我们说的是虚函数
2.如果你有书,必定会告诉你只有虚函数有=0这么一说
3.请看书
lly212 2009-08-07
  • 打赏
  • 举报
回复
那你就当我不知道好了 我现在问你啊
除了多态其他的函数能不能也写成 void a() { //具体实现; } = 0 ;
你见过没有 你能给我一个你觉得对的答案不
lly212 2009-08-07
  • 打赏
  • 举报
回复
他说是说明这个纯虚函数一定不会被调用??
啥意思?

test02.cc:63: 错误:不能将变量 ‘test04’ 声明为具有抽象类型 ‘Animal’
test02.cc:3: 附注: 因为下列虚函数在 ‘Animal’ 中为纯虚函数:
就是说如果你是纯虚函数 你调用就会出现上面的提示
我啃 2009-08-07
  • 打赏
  • 举报
回复
“关于虚函数 我知道”
就是因为你以为你知道了~
lly212 2009-08-07
  • 打赏
  • 举报
回复
关于虚函数 我知道
我现在原来想问的是
除了多态其他的函数能不能也写成 void a() { //具体实现; } = 0 ;
这样的形式 我试过没有提示是 函数xxx像变量一样被初始化 我想问问大家有没过
如果有具体说下=0 具体代表什么意思 刚才表达不清晰 对不起啊
我啃 2009-08-07
  • 打赏
  • 举报
回复
你必须有一个类继承自animal并且实现那个纯虚函数,然后实例化那个派生类~
lly212 2009-08-07
  • 打赏
  • 举报
回复
test02.cc:63: 错误:不能将变量 ‘test04’ 声明为具有抽象类型 ‘Animal’
test02.cc:3: 附注: 因为下列虚函数在 ‘Animal’ 中为纯虚函数:

这个就是具体的提示
其实我问的是 除了多态其他的函数能不能也写成 void a() { //具体实现; } = 0 ;
这样的形式 我试过没有提示是 函数xxx像变量一样被初始化 我想问问大家有没过
如果有具体说下=0 具体代表什么意思 刚才表达不清晰 对不起啊
lly212 2009-08-07
  • 打赏
  • 举报
回复
test02.cc:63: 错误:不能将变量 ‘test04’ 声明为具有抽象类型 ‘Animal’
test02.cc:3: 附注: 因为下列虚函数在 ‘Animal’ 中为纯虚函数:

这个就是具体的提示
其实我问的是 除了多态其他的函数能不能也写成 void a() { //具体实现; } = 0 ;
这样的形式 我试过没有提示是 函数xxx像变量一样被初始化 我想问问大家有没过
如果有具体说下=0 具体代表什么意思 刚才表达不清晰 对不起啊
lly212 2009-08-07
  • 打赏
  • 举报
回复
test02.cc:63: 错误:不能将变量 ‘test04’ 声明为具有抽象类型 ‘Animal’
test02.cc:3: 附注: 因为下列虚函数在 ‘Animal’ 中为纯虚函数:

这个就是具体的提示
其实我问的是 除了多态其他的函数能不能也写成 void a() { //具体实现; } = 0 ;
这样的形式 我试过没有提示是 函数xxx像变量一样被初始化 我想问问大家有没过
如果有具体说下=0 具体代表什么意思 刚才表达不清晰 对不起啊
lire1213 2009-08-07
  • 打赏
  • 举报
回复
表示它是一个纯虚函数,不能定义函数实体,只能
在派中定义它,这是面向对象多态性质的一个很重
要的一个特点
我啃 2009-08-07
  • 打赏
  • 举报
回复
表示此函数必须有派生类填写,基类只提供不实现,基类本身无法实例化
看书!!
mstlq 2009-08-07
  • 打赏
  • 举报
回复
如果2楼的解释也不算清楚的话,我也没有办法说得更明白了^_^
lly212 2009-08-07
  • 打赏
  • 举报
回复
test02.cc:63: 错误:不能将变量 ‘test04’ 声明为具有抽象类型 ‘Animal’
test02.cc:3: 附注: 因为下列虚函数在 ‘Animal’ 中为纯虚函数:

这个就是具体的提示
其实我问的是 除了多态其他的函数能不能也写成 void a() { //具体实现; } = 0 ;
这样的形式 我试过没有提示是 函数xxx像变量一样被初始化 我想问问大家有没过
如果有具体说下=0 具体代表什么意思 刚才表达不清晰 对不起啊
taodm 2009-08-07
  • 打赏
  • 举报
回复
楼主在看的什么垃圾级教材?
lufy_sun 2009-08-07
  • 打赏
  • 举报
回复
定义纯虚函数,方便基类指针访问派生类的数据成员

65,206

社区成员

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

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