看别人的代码,有一段不明白意思

时间:2022-07-13 02:43:30
struct ABC
{
  int a;
  float b;
  ....
}


class UAddin:public AddinBase<ABC>
{
   .....
}

这儿用了  <ABC>  是什么意思?

9 个解决方案

#1


C++ 中著名的 模版 (template).

#2


AddinBase是个模板类,需要个参数

#3


我就是把他当成类来看,相当于继承了ABC的成员

#4


一般叫泛型吧,在AddinBase这个类里面有个地方不确定变量类型,而用<T>之类表示,定义变量的时候用T member这样的方式,在实现UAddin的时候用你那个ABC类表示指定了明确的类型,编译器就会用ABC替代原来AddinBase类中T类型的位置,这样实现了一个类用于多种不同的类型参数,实现算法重用。

#5


看别人的代码,有一段不明白意思

#6


引用 4 楼 Mackz 的回复:
一般叫泛型吧,在AddinBase这个类里面有个地方不确定变量类型,而用<T>之类表示,定义变量的时候用T member这样的方式,在实现UAddin的时候用你那个ABC类表示指定了明确的类型,编译器就会用ABC替代原来AddinBase类中T类型的位置,这样实现了一个类用于多种不同的类型参数,实现算法重用。

这就是标准答案。

#7


这儿用了  <ABC>  是什么意思?
-------------------------------

传一个类型参数!

#8


引用 4 楼 Mackz 的回复:
一般叫泛型吧,在AddinBase这个类里面有个地方不确定变量类型,而用<T>之类表示,定义变量的时候用T member这样的方式,在实现UAddin的时候用你那个ABC类表示指定了明确的类型,编译器就会用ABC替代原来AddinBase类中T类型的位置,这样实现了一个类用于多种不同的类型参数,实现算法重用。
看别人的代码,有一段不明白意思
讲的太好了

#9


有的时候因为类的名称不知道是啥,会变化
所以有人就设计了泛型,编译的时候进行模版替换的吧

#1


C++ 中著名的 模版 (template).

#2


AddinBase是个模板类,需要个参数

#3


我就是把他当成类来看,相当于继承了ABC的成员

#4


一般叫泛型吧,在AddinBase这个类里面有个地方不确定变量类型,而用<T>之类表示,定义变量的时候用T member这样的方式,在实现UAddin的时候用你那个ABC类表示指定了明确的类型,编译器就会用ABC替代原来AddinBase类中T类型的位置,这样实现了一个类用于多种不同的类型参数,实现算法重用。

#5


看别人的代码,有一段不明白意思

#6


引用 4 楼 Mackz 的回复:
一般叫泛型吧,在AddinBase这个类里面有个地方不确定变量类型,而用<T>之类表示,定义变量的时候用T member这样的方式,在实现UAddin的时候用你那个ABC类表示指定了明确的类型,编译器就会用ABC替代原来AddinBase类中T类型的位置,这样实现了一个类用于多种不同的类型参数,实现算法重用。

这就是标准答案。

#7


这儿用了  <ABC>  是什么意思?
-------------------------------

传一个类型参数!

#8


引用 4 楼 Mackz 的回复:
一般叫泛型吧,在AddinBase这个类里面有个地方不确定变量类型,而用<T>之类表示,定义变量的时候用T member这样的方式,在实现UAddin的时候用你那个ABC类表示指定了明确的类型,编译器就会用ABC替代原来AddinBase类中T类型的位置,这样实现了一个类用于多种不同的类型参数,实现算法重用。
看别人的代码,有一段不明白意思
讲的太好了

#9


有的时候因为类的名称不知道是啥,会变化
所以有人就设计了泛型,编译的时候进行模版替换的吧