标题:分享:通用链表(有任何问题或建议,请提出)(5.2新增两个函数)
只看楼主
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
回复 10楼 renkejun1942
顺便问一下看看~刚刚有学C++的问多态性与虚函数方面的内容~这个以前还真没啥了解过~能否简单解释一下?~~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-04-25 13:01
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
得分:0 
回复 11楼 九转星河
多态是指一个函数或操作符只有一个名字,但它可以用于几个不同的派生类型的能力。
每个对象都实现该操作的一种变型,表现一种最适合自身的行为。
多态是运行时绑定。
多态简单来说就是给相似的东西取相同的名字,在运行的时候,判断哪一个最适合。

C和C++的设计哲学并不相同,C鼓励使用者发现细节(指针可以说就是一个典型),C++想尽一切办法隐藏细节。(当然这些都是我个人的理解)

虚拟函数就不知道了,我只看C语言的书,这些书里没有相关的介绍。


模拟多态,也许会挺有趣。

[此贴子已经被作者于2017-4-25 13:44编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-04-25 13:10
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
回复 12楼 renkejun1942
先感谢你的回复

以下是引用renkejun1942在2017-4-25 13:10:13的发言:

C和C++的设计哲学并不相同,C鼓励使用者发现细节(指针可以说就是一个典型),C++想尽一切办法隐藏细节。(当然这些都是我个人的理解)

模拟多态,也许会挺有趣。


那岂不是说对链表操作进行封装用C++比C更适合~让我用C写得这么……~或许是我安装问题或者是系统问题~现在VS2015就是不能正常运行~到我能让VS2015运行成功的时候再来看那些VS新增的功能~当然现在也可以用C++本来自带的~不过还是先等我把C学好再说吧~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-04-25 13:49
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
得分:0 
回复 13楼 九转星河
C++的思想,是很有用的,比如泛型之类的,用C实现,可以带来很大的方便。
我对C++语法没有兴趣,但是对它的思想很有兴趣,我正准备找时间好好读读关于C++的书。
封装,要看你要封装什么了,封装链表没有必要吧?

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-04-25 14:01
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
回复 14楼 renkejun1942
闲聊一下~

记得我之前借了本C++的书来看~不过有时间我却花在C上~因为感觉C还有很大发展空间~~结果一个月没怎么看然后就把书还了~~感觉现自己阶段还不是学C++的时候~~所以等下我先把那运行失败的VS2015卸了就不管了~真的要用到VS2015里面新出的功能时再重新考虑~~还是先把数据结构学好再说吧~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-04-25 14:16
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
得分:0 
回复 15楼 九转星河
是的了,先学好数据结构和算法,原因在于数据结构和算法对其他语言同样适用。
C++,其实我并不喜欢C++本身,我喜欢的是它的思想,C++过度的复杂(C++的设计者曾说过,我从来没希望过有人能完全掌握C++的所有特性(大意如此) )。
我觉得学C++,还不如学JAVA。

我忘记从哪里看来的了,意思是与其说C++是C的直系后代,莫如说JAVA是C的直系后代。

[此贴子已经被作者于2017-4-25 14:27编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-04-25 14:25
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
得分:0 
这叫通用目录更合适吧。
常规链表就是数据结构里有链接点指针的不管是叫next,还是叫list,必须有才叫链表的数据结构。你为了通用,调用者只能设计普通数据结构,你再用一个自己知道结构的链表指向用户数据,不正是目录么!制定一定的规则,就是用链表结构也可以设计出通用函数库的。
2017-04-27 07:00
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
得分:0 
回复 17楼 xzlxzlxzl
程序代码:
struct List{
    void *Element;
    struct List *Link;//这不就是链接指针。
};
typedef struct List *List;


你确定你看了这些函数?特别是Insert函数。

[此贴子已经被作者于2017-4-27 19:25编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-04-27 19:07
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
得分:0 
回复 18楼 renkejun1942
代码改了!
水平有限。原本勉强还能理解题主“通用”的意图,大概就是在用户自定义数据结构外套一个函数库能操作的链表,题主这样一改后,就彻底懵了:已经没有用户定义的结构体了,main函数里有函数库里定义的List链表结构体了,这算通用吗?Insert函数好像就只是先申请一个List内存,再申请一个size(int)的内存,将list里的element指向这个,这就是用户数据,不知道理解正确否?望指正。另题主应该提供相应的函数库文件,让我们学习下,其实我正不知道你那一段“接口”要放在哪里,是在main函数的文件里,还是在GenericityList.h呢?
还问一个:“typedef struct List *List;”能行吗?我怎么觉得同名二义性问题呢?还望题主解惑。
2017-04-27 21:08
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
得分:0 
回复 19楼 xzlxzlxzl
可以的,struct List 和typedef 定义的名字享有不同的名字空间。
我本来想连这个都用语法糖隐藏起来的的,但是后来考虑到毕竟是拿出来给大家看的,就没有这个必要了。

[此贴子已经被作者于2017-4-27 21:29编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-04-27 21:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-476405-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014165 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved