问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

就3那一部分,能不能简单点解释一下。注,我只学过c语言

发布网友 发布时间:2022-04-15 01:55

我来回答

2个回答

热心网友 时间:2022-04-15 03:24

比如说, 在 c 里面, 你要实现一个链表的搜索, 树的搜索, 你不会都写在 main () 函数里面实现所有功能, 你会分层次实现这些功能, 比如

NODE * seekTable ( int key, NODE * tableHead );
NODE * seekTree ( int key, NODE * root );
int main ()
{
.....
NODE * p, * th, * r;
th = initTable ( n, array );
if ( NULL == th ) return -1;

r = initTree (n);
addTreeNode ( r, key,....);
.....
p = seekTable ( myKey, th );
......
p = seekTree ( myKey, r );
.....
}

而在 c++ 里面, 你可以进一步抽象, 你发现无论 tree, table 都可以 seek, 这样你定义一个抽象类 base, 定义它的虚函数 base::seek, 然后定义tree, table 继承 base , 并重载 seek () 这一函数(或者称为 method, 方法)
class base { int key; ..... NODE * seek ( int key ) = 0; };
class tree : public base { ... };
clase table : public base { .... };
NODE * tree::seek ( int key ) { ..... // 这里是你对树查找的代码 };
NODE * table::seek ( int key ) { ..... // 这里是你对链表查找的代码 };

这样有什么好处呢?
你可以定义一个指针
base * p;

tree *ptree = new tree ( n );
p = ptree;

或者
table * pt = new table ( n );
p = pt;

.....
然后你调用 p->seek ( x );......
它就会根据 p 指向的是一个 tree, 还是 table, 来调用相应的 seek () 函数....

是不是有些事情就更方便一些了呢?

比如说你写一个函数, 不关心数据存储是用 tree 还是 table, 你只需要找到 key == x 的节点就行
那么这个函数, 就可以只写一份......如果你修改这个函数, 修正某些 bug, 或者让它更高效, 或者改变不同的输出格式, 那现在你只需要改一次......否则, 例如在传统 c 代码中, 你可能需要分别对 tree, table 各修改一次, 你确信你不会改错其中的一个, 或者忘了修改其中的一个?

一个典型的例子是, 当你有一堆有序的, 不同数据类型的链表, 在 c 里面你需要为每个数据类型写一个排序函数, 比如说冒泡吧; 在 c++ 里面, 你只需要为他们的共同的基类 base 写一个排序函数, (当然它们肯定有个比较大小的算符或者函数, 你可以在 base 里面声明虚函数, 然后在各数据类型中重载它)........

热心网友 时间:2022-04-15 04:42

大哥,再好的眼睛也会看废掉的,可以是有字的吗?追问呵呵,不好意思,太多了不知道提取哪部分打出来

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
猪肚炖汤的做法 我家的创维电视机最近无论连接DVD影碟机或者是连接有线电视网,电视机都... 小小新娘花的歌词是什么? 胶州小吃有什么 红橡华园的介绍 长沙市芙蓉区有哪些湾 长沙有哪些湖景小区 世界第一大洋--太平洋 太平洋有哪些方面占据世界第一 午夜惊魂2游戏安卓游戏官方下载 四个字的成语(带冰的) 描写冰的词语 敲冰求火,临深履冰,如屡薄冰,冰天雪地除外 关于冰、雪的词语 冰的成语有哪些 形容结冰的词语 描写冰的成语 形容“冰”的词有哪些? 形容冰的词语有哪些 暑假趣事作文 400字 两篇 谢谢 谁帮我写一篇有关“暑假趣事”的作文(要400字左右)! 长三角十四五规划重点项目 长三角十四五规划重点项目 厦门洋塘三期一标段又拿来隔离了吗 厦门洋塘三期一标段又拿来隔离了吗 游泳的作文400字 十四五规划撤县设区 作文《署假有意义的一件事》要写学游泳 一基地三区是什么 暑假了,我和同学一起去游泳池游泳的作文! 一基地三区是什么 用中医解释春捂秋冻 “春捂秋冻,百病难碰”这句话是对的吗? 俗话说“春捂秋冻,不生杂病”,秋天要怎么冻? 俗话说“春捂秋冻,不生杂病”,秋天要怎么冻? 空调正常没什么毛病,不能制热是为什么? 三相倒顺开关怎样改接成单相倒顺开关 四字形容词20个 有哪些形容词是四字词语 求四字形容词 越多越好 形容词四字词语 四字形容词 形容词(人)四字? 形容词四字成语 用四字词语形容 AABB式的四字形容词 用四个字的什么形容词来形容帅哥很多? 四字词语形容事物很独特 跟女朋友道歉送什么小礼物好?我可是不知道她喜欢什么不喜欢什么? 跟女朋友道歉送什么礼物 向女朋友道歉送什么礼物
  • 焦点

最新推荐

猜你喜欢

热门推荐