thinking: C++的模板与Java的接口

来源:互联网 发布:linux解压rar命令 编辑:程序博客网 时间:2024/05/29 21:29

c++图算法一书中, 首先向我们介绍了一种图的ADT ,此ADT中只包含了图的基本操作(返回顶点/边的数量,增/删边,判断两点间是否有边),而图的算法都通过ADT函数实现。ADT函数没有直接用到图作为参数,而是用了模板参数的方式传入一个图的类。

突然觉得这种方式,跟用接口有点类似:传入的参数一样需要符合一定的“契约”;

而最大的不同点在于,若用模板,被传入模板参数的类型只要含有模板函数/类中用到的成员,即可;接口则必须在定义作为参数的类的时候,显式声明实现特定接口。

联想到的问题:

若要接口实现类中包含特定内部类时,使用接口应当如何实现?(接口有必要使用内部类吗?)

接口从抽象类中分离出来,是否存在一定的使用法则?

为何书中不使用接口(c++中是纯抽象类)的方式实现统一的树接口?

原创粉丝点击