项目场景1:定义构造函数时不可,如果是写类外构造函数,不能在类内使用初始化列表
这是错误示范,正确的是将类内的构造函数声明的初始化列表删除。
原因分析:
系统告诉你,他希望在末尾有个"{}",意思是他希望有个函数,但这里是声明,说明初始化列表只能在函数实现的位置使用。
项目场景2:泛型编程的函数参数问题
这是错误示范,圈起来的是问题所在
原因分析 :
错误提示说:没有匹配的函数调用,说明两种情况:第一种,没写这个函数实现,就在主函数调用这个函数,我们这里写了说明不是这个问题;第二种,所传参数和函数所需参数不匹配,函数重载里也找不到这样函数,故报错。所以我们是第二种。这样就发现,哪怕是泛型编程,他给的T类型在参数传入时也只能传一种参数,不同的类型依然不行,用书面的语言说就是:函数模板不允许隐式类型转换,调用时类型必须严格匹配。
项目场景三
错误示范,第二个去掉<T>后会报错
原因分析
错误信息告诉你 Class SeqList 不使用模板参数,如果在不加模板参数名列表,就无法证明这是个属于泛型类的类外函数,就算函数中不使用模板参数,也要加。