假设我们有一个绘图程序,其中包含不同的元素,例如圆形、矩形、三角形等。这些不同种类的对象都需要类似的功能,例如
我想知道程序员如何解决现今通常通过多态性来解决的问题,即遍历非相同元素集合并在不同对象之间调用公共功能。
一种方法是使用具有指向适当函数的函数指针(或函数指针数组中的索引)以及实际实例的void指针的结构体,并传递被转换为适当类型的指针到函数中。但这只是我 - 一个对此一无所知的人 - 怎么做的。
我意识到这可能是一个初学者的问题,但由于我没有在“古老”的日子里出现过,我真的很好奇该问题是如何解决的。过程式编程使用了什么样的方法,并且是否具有性能优势,因为我们都知道多态性即使在快速语言(如C++)中也会有开销,由于虚拟方法查找。
draw()
以显示自己。我想知道程序员如何解决现今通常通过多态性来解决的问题,即遍历非相同元素集合并在不同对象之间调用公共功能。
一种方法是使用具有指向适当函数的函数指针(或函数指针数组中的索引)以及实际实例的void指针的结构体,并传递被转换为适当类型的指针到函数中。但这只是我 - 一个对此一无所知的人 - 怎么做的。
我意识到这可能是一个初学者的问题,但由于我没有在“古老”的日子里出现过,我真的很好奇该问题是如何解决的。过程式编程使用了什么样的方法,并且是否具有性能优势,因为我们都知道多态性即使在快速语言(如C++)中也会有开销,由于虚拟方法查找。