ChinaUnix.net
相关文章推荐:

C 多重继承详解

#include class A{ public: virtual void fa() { } }; class B{ public: virtual void fb() { } }; class C : public A ,public B{ public: void fa() { cout<<"C:fa"<fa(); B* Ins2 = (B*)Ins; Ins2->fb(); } 为什么结果是 C:fa C:fa 而不是 C:fa C:fb 这个问题要怎么解决呢,求大侠

by lipan465 - C/C++ - 2013-07-29 12:43:43 阅读(4865) 回复(5)

相关讨论

本帖最后由 yshihyu 于 2013-07-12 08:21 编辑 http://www.cppblog.com/dawnbreak/archive/2009/03/10/76084.html 在上面网址中 , 继承虚函数表 Base1 , Base2 , Base3 , 为什么只有虚函数表 Base1 有Derive 的Derive::f1(), Derive::g1() Base2 , Base3 都没有

by yshihyu - C/C++ - 2013-07-13 17:38:08 阅读(1434) 回复(5)

JS实现继承 Js代码[code]1. Class = function(){ 2. var classPrototype = arguments[arguments.length - 1] || ""; 3. for(var i = 0; i < arguments.length - 1 ; i++){ 4. var superClass = arguments; 5. if(typeof superClass === "function"){ 6. superClass = superClass.prototype; 7. } 8. if(!classPrototype.superClass){ 9. ...

by so_brave - Web开发 - 2011-12-29 15:59:56 阅读(874) 回复(1)

ruby的类是单一继承的方式,某个类只可以继承自一个父类。但是ruby的mixin让继承变得很容易。 ruby引入了module的概念,module除了自身不能实例化外,拥有跟类几乎一样的属性,包括实例方法、实例变量等。 (当然,它的实例方法、实例变量只有通过include它的类被实例化后,才真正称之为“实例”。) 通过在类里include module,可以混入(mixin)其方法和属性,那么类等于实现了继承。 如下示例代码:[code]module Mymo...

by zuerrong - Ruby - 2011-11-19 23:32:47 阅读(7124) 回复(4)

如下, 类C是从A和B继承而来,如何只修改类C的代码,取消继承,同时保持其他的代码和功能保持不变? class A { public: virtual void f(); }; void F(A &a1) { a1.f(); } class B { public: virtual void g(); }; void Fun(B &b1) { b1.g(); } class C: public A, public B { public: virtual void dd() { f(); g(); } }; void main() { C c; c.dd(); F(c); Fun(c); }

by maisams - C/C++ - 2010-01-29 18:12:53 阅读(1759) 回复(8)

当在继承路径上有一个公共的基类时,在这些路径中的某几条汇合处,这个公共的基类就会产生个实例(或个副本), 当然只想保存这个基类的一个实例了,不可能希望这个基类有个副本吧??? 所以继承必须用虚拟继承,对么? 如果回答是肯定的,那么就要质问C++:为什么让程序员费力做这些繁琐的工作,而不自动处理?

by 边学CPP边骂CPP - C/C++ - 2012-09-27 09:28:02 阅读(4427) 回复(18)

class A{ public: virtual void printA(){cout<<"A:printA"< vc; vc.push_back(c); ((A*)vc[0])->printA(); delete c; return 0; } 程...

by weble - C/C++ - 2009-10-07 12:24:29 阅读(2320) 回复(2)

我在看COM时,发现每个接口都是从IUnknown继承来的, 该接口都有QueryInterface虚函数,那么最后COM类中 的每个vtable中都要实现该函数,我现在模拟了个: class IA { public: virtual void dsp()=0; }; class B:public IA { public: virtual void dsp()=0; }; class C:public IA { public: virtual void dsp()=0; }; class cls:public B,public C { public: void dsp(){printf("I dont know\n");} }; 可是最后类...

by netdoger - C/C++ - 2013-04-23 18:25:36 阅读(2799) 回复(14)

请问如果一个派生类继承于不同的基类。 但是在不同的基类中有相同名字的成员函数。 那对于派生类来说, 如何使用和区别这来自两个不同基类的相同名字的函数呢。

by bird528 - C/C++ - 2008-09-03 16:48:44 阅读(1323) 回复(3)

在学习C++,遇到继承的问题: 类的结构如下,每个类都只有一个函数,答应自己类名称。 //___A //__ / \ //__B D //_ / \ / \ //_C F E //其中F的调用有问题。 其中F来自B和D的继承。 情况1。使用 F f;A* pa;pa=&pa->;p();编译无法通过。 情况2。使用 F f;B* pb;pb=&pb->;p();编译也无法通过. 情况3。使用 F f;D* pb;pb=&pb->;p();编译可以通过,但是显示好像是来自 类E中的p(); 编译器是VC toolkit2003命令行 编译工具 ...

by 运动补偿 - C/C++ - 2005-02-04 20:32:56 阅读(602) 回复(0)

请赐教 class ScopeDiagram : public Element, public ViewManager { } ScopeDiagram::ScopeDiagram(const ScopeDiagram& rhs) :Element(rhs), ViewManager(rhs) { } 调用第一个base class 的copy constructor没有问题。 第二个ViewManager(rhs) 出错(VC6.0) 继承的拷贝构造不能这么写吗 正确的写法是什么呢?? thanks.

by aosunny - C/C++ - 2004-05-19 13:39:44 阅读(638) 回复(1)