其他分享
首页 > 其他分享> > c – 模板,会很感激解释

c – 模板,会很感激解释

作者:互联网

我正在读一本书,其中这个人制作了一个链表
他创建了这样一个类

template < class extra_info = void*>
class NavGraphNode : public GraphNode
{
protected:
//the node's position
Vector2D m_vPosition;

extra_info m_ExtraInfo;
public:
/*INTERFACE OMITTED */
};

他解释说extra_info可以是例如枚举值或指针
对于节点与之配对的实例.但我真的不明白第一行,
阅读例如
http://www.cplusplus.com/doc/tutorial/templates/
看来如果你指定了类型(为什么不用void * extra_info?)
那么为什么要首先使用模板呢?

谢谢!

解决方法:

= void *是默认模板参数.即,如果在使用模板void *时未指定类型,则使用. NavGraphNode&LT&GT N;将使用void *作为额外信息实例化模板.

但是,您可以显式指定类型,然后使用此类型.例如,您可以使用NavGraphNode< int>将一个整数作为额外信息添加到图形节点.您还可以使用整个结构或指针来向节点添加更多信息.

标签:c,templates,void-pointers
来源: https://codeday.me/bug/20190901/1785579.html