由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - A C++ inheritance question!
相关主题
考考大家,其实也不只是C++,C#/Java也一样问一个inheritance的初级问题
问个C++ virtual function的问题 (转载)请问c++中操作符可以声明为虚函数吗?
C++ 弱问一个ask a C++ inheritance question
C++问题How to check the virtual function table size?
【讨论】问一道很简单的C++题。。。。 (转载)C++ 请教: about the memory layout of the class inheritance
再来一个C++模板问题问题:vptr/vtable for virtual function & vptr/vtable for
两个看来相似的问题C++ private inheritance. v.s. composition
请问C++小白问题How to understand the answer.
相关话题的讨论汇总
话题: ia话题: ib话题: sa话题: class话题: sb
进入Programming版参与讨论
1 (共1页)
y******l
发帖数: 23
1
class IA { virtual void foo() = 0; }
class IB : public virtual IA
class SA: class IA
class SB : SA, IB
For "foo", SB needs to provide an implementation or it can use SA's ?
X****r
发帖数: 3557
2
No need.

【在 y******l 的大作中提到】
: class IA { virtual void foo() = 0; }
: class IB : public virtual IA
: class SA: class IA
: class SB : SA, IB
: For "foo", SB needs to provide an implementation or it can use SA's ?

l**a
发帖数: 423
3
IA
^ ^
| |
| |
IB SA
^ ^
| |
SB
这个是典型的继承类问题。你既然在IA里面用 pure virtual, 你一定要implete.
SB 有两个路径引用IA, 这会产生2个IA 的 copy 编译会出错。
解决方法有2个,一个是你用 ::解决路径问题,例如你想通过IB 调用foo(),
IB::foo(), 或者SA::foo().
另一个办法你的code 已经有眉目了,就是用 virtual class 的方法。
class IB: public virtual IA{
1 (共1页)
进入Programming版参与讨论
相关主题
How to understand the answer.【讨论】问一道很简单的C++题。。。。 (转载)
问问C++的diamond problem再来一个C++模板问题
protected/private inheritance两个看来相似的问题
题2请问C++小白问题
考考大家,其实也不只是C++,C#/Java也一样问一个inheritance的初级问题
问个C++ virtual function的问题 (转载)请问c++中操作符可以声明为虚函数吗?
C++ 弱问一个ask a C++ inheritance question
C++问题How to check the virtual function table size?
相关话题的讨论汇总
话题: ia话题: ib话题: sa话题: class话题: sb