接口的根本问题?
问各位一个问题那就是我看了C++方面的书
觉得其它书上的 接口 好像就是用的C++上面的抽象类被继承机制一样
用的是 基类的指针调用子类的函数的能力
对应的 接口 被 子类实现
这样的话,是不是用关键字interface就表示它的成员函数就都是C++中所说的纯虚函数了
然后 编译器 自动在每个成员函数前面加上了关键字virtual了
那么,我用我的子类 继承抽象类是不是可以做到同样的效果 或都说是等价的
如果是这样的 这两种方法有什么区别呢?(先不说接口能继承IUnknown...之类)
[解决办法]
学习。
[解决办法]
楼主
用 诗一般的语言
描述了 一个 我 看不懂 的
问题
[解决办法]
C++的多重继承功能较广,Java的interface功能只是其中的一个子集。因为C++的虚拟函数可以有纯虚拟函数,也可有非纯虚拟函数,而Java只有抽象函数,所以功能模式少一种,自然能达到的效果较少一些。 但这并不代表Java的interface就比较差,因为interface的观念较简单,全部动态的抽象函数也正代表着Java为一纯物件导向语言。与C++不同的是,C++考虑许多执行效率的问题,所以语言本身就变的较复杂化,同时C++的编译器也是公认难写的,多重继承更是一大挑战。
另外,百度一下就知道啦,这里最好问些具体的问题!:-)
[解决办法]
这样的话,是不是用关键字interface就表示它的成员函数就都是C++中所说的纯虚函数了
然后 编译器 自动在每个成员函数前面加上了关键字virtual了
那么,我用我的子类 继承抽象类是不是可以做到同样的效果 或都说是等价的
如果是这样的 这两种方法有什么区别呢?
============================================================
其实lz这涉及的就是com技术的雏形,com技术正是利用基类的纯虚函数作为接口(IUnkown);
你自己用子类继承抽象类(注意接口函数必须是纯虚函数) 基本上可以达到相同效果,介绍com技术接口概念的时候也是这样推导的.
其实interface 在c++中定义就是typedef struct interface. 接口类中的函数都是纯虚函数,使得派生类可以自己实现.
[解决办法]
这样的话,是不是用关键字interface就表示它的成员函数就都是C++中所说的纯虚函数了
然后 编译器 自动在每个成员函数前面加上了关键字virtual了
===============================================
哥们,学JAVA的吧?
[解决办法]
估计楼主是个准备弃暗投明的java人,嘿嘿...
接口的根本有关问题
接口的根本问题?问各位一个问题那就是我看了C++方面的书觉得其它书上的 接口好像就是用的C++上面的抽象类
