Object-Based与Object-Oriented的区别是什么?

roy_hu 2002-05-13 02:39:40
看《inside C++ object》中,提到这两个概念。就是前者不支持虚函数吗?
...全文
484 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jsliu999 2002-05-17
  • 打赏
  • 举报
回复
> 封装ob
> 多态继承oo

Right!

Visual BASIC (4.0 to 6.0) is an object-based development tool, not an object-oriented development tool. Because it didn't support inheritance. It only supports encapsulation.

Visual BASIC 7.0 supports inheritance, overloading, overriding and polymorphism. so, we announced that VB 7.0 is an OOPL.
zhaoweikid 2002-05-17
  • 打赏
  • 举报
回复
应该就是基于对象无多态
jsliu999 2002-05-17
  • 打赏
  • 举报
回复
> 注意:C++语言中Object_based的struct/class是可以有operation/method
> 的,但是C语言中struct是没有operation/method的。

In C programming Language:

#include <stdio.h>
void Hello(void)
{
printf("Hello Function Pointer\n");
}
struct foo
{
void (*func)();
};
int main()
{
struct foo temp;
temp.func = Hello;
temp.func(); /* method of foo */
return 0;
}
zjlsct 2002-05-17
  • 打赏
  • 举报
回复
封装ob
多态继承oo
zjlsct 2002-05-17
  • 打赏
  • 举报
回复
封装ob
多态继承oo
roy_hu 2002-05-17
  • 打赏
  • 举报
回复
嗯,懂了,还有人要说话吗?
晨星 2002-05-13
  • 打赏
  • 举报
回复
支持封装就可以算是基于对象,比如说VB6.0及其更低版本。
而面向对象必须完全支持封装、继承和多态。
Flyincloud 2002-05-13
  • 打赏
  • 举报
回复
本质区别就在于有没有多态!
注意:C++语言中Object_based的struct/class是可以有operation/method的,但是C语言中struct是没有operation/method的。
wangran 2002-05-13
  • 打赏
  • 举报
回复
《深度探索C++对象模型》上第一章最后几段的话不是说得挺清楚的吗?
Object-oriented支持Polymorphism,而Object-based不支持Polymorphism.主要的区别就在于此。支持多态的代价是额外的间接性--不论是在“内存的获得”或是在“类型的决断”上。
C++通过class的pointers和references来支持多态,这种程序设计风格就叫面向对象。
C++也支持具体的ADT程序风格,被称为基于对象,它只支持封装,不支持类型的扩充。
一个Object-based设计可能比一个对等的Object-oriented设计速度更快而且空间更紧凑。速度快是因为所有的函数引发操作都在编译时期解析完成,不需要设置virtual机制;空间紧凑则是因为每一个class object不需要负担传统上为了支持virtual机制而需要的额外负担。不过,Object-based设计比较没有弹性。
招RD和QA 2002-05-13
  • 打赏
  • 举报
回复
基于对象是一种Abstract DataType,它封装了一些复杂的操作,使之易于使用。

比如说CString,CRect,在C++中,通过类来实现。(封装一些数据及一些操作)

面向对象的核心是多态,关键在于你不必知道对象的真正类型,只要知道它是一种什么类型,C++中,通过类,继承,虚函数来实现。
unicode 2002-05-13
  • 打赏
  • 举报
回复
也搞不清楚,还没具体地想过
听课

69,370

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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