当结构体使用模板时
①不能使用typedef来给结构体另起别名
②不能在定义结构体后直接定义结构体变量
原因①结构体模板和类模板一样需要在调用时显示声明数据类型,若使用typedef另起别名相当于对不确定的数据类型另起别名,这是不允许的,但是可以对指明了数据类型的结构体使用typedef进行定义;例如typedef struct myStruct<int> student;
原因②结构体模板定义变量时需要显示指明数据类型,直接在结构体后定义变量无法指明数据类型,原因其实和①类似
当结构体使用模板时
①不能使用typedef来给结构体另起别名
②不能在定义结构体后直接定义结构体变量
原因①结构体模板和类模板一样需要在调用时显示声明数据类型,若使用typedef另起别名相当于对不确定的数据类型另起别名,这是不允许的,但是可以对指明了数据类型的结构体使用typedef进行定义;例如typedef struct myStruct<int> student;
原因②结构体模板定义变量时需要显示指明数据类型,直接在结构体后定义变量无法指明数据类型,原因其实和①类似