c++模板理解
C++ template comprehension
本文关键字:c++ 更新时间:2023-10-16
我正试图理解以下代码的含义,因为它是一个有效的c++代码:
template<class A>
class AT
{
AT();
};
template<class B>
AT<B>::AT()
{}
有人能帮助我理解什么是模板实例化在构造函数的效果?如果有人能提供一个有用的实际用例,我将不胜感激。
坦克这里没有模板实例化。这段代码的后半部分简单地定义了AT
类的构造函数。请注意,在执行以下操作时,通常做法是对模板参数使用相同的名称:
template<class A>
class AT
{
AT();
};
template<class A>
AT<A>::AT()
{}
这种语法的用途是打破依赖循环:
template<class A>
class AT
{
AT();
};
class Dependent
{
AT<Dependant> member; // Complete definition of AT is needed here
};
template<class A>
AT<A>::AT()
{
Dependent object; // Complete definition of Dependent is needed here
}
模板参数的名称不重要。如果你把第二部分写成
template<class A>
AT<A>::AT()
{ }
魔法消失了,它只是构造函数的一个定义。
相关文章:
- 没有找到相关文章