C和 C++ 描述 ADT 有什么不同?

2025-03-29 20:35:50
推荐回答(1个)
回答1:

话说,你们说的ADT是什么呀?abstract data type还是algebraic data type。不过鉴于代数数据类型一般是函数式编程语言里面提,所以估计你说的是前面那个“抽象数据类型”。
要说这个呀,ADT就是类型系统的属性,我个人觉得跟过程化和面向对象关系不大。数据类型是人为的限制,是变量等的附加属性,用以描述变量的人为设定的特性。
从这个角度说,C++的类型系统要远比C更加高级(你以为模板之类的黑魔法是加着玩儿的?),等C++加了concepts(Haskell等傲娇飘过)之后,更是完爆C好不好。