**
- 要他们有共同的基类(做不到)
- 克隆代码(保证了类型安全,不好管理,难以维护)
- 无类型list(不安全,任何东西都能放进去,取出来的时候怎么知道是x还是y?)
- 用Template
**
- 类型成为template的参数
- 函数模板/类模板
如上图,C++好处就是可以用reference直接交换值。上面只能交换Int,如果想交换 other type 比如string之类的,把它做成下图函数模板。
- T是可以换的,只是参数。
- 在template关键字下面的那个东西就称为template
- 在函数模板里面可以使用T来代表一个类型