模板的2个指针之间的差异

Tki*_*Lio 13 c++

我想知道模板类中的2个指针(作为数据成员)之间是否存在任何差异.例如:

template <typename E>
class Link
{
private:
    E element;
    Link* a;
    Link<E>* b;
};
Run Code Online (Sandbox Code Playgroud)

我想知道"a"类似于"b"吗?

Sto*_*ica 14

两种形式都有效.如果在没有模板参数的类模板范围内使用类模板的名称,则它将解析为"当前"模板特化的名称.

ab具有相同的类型.

这是一个相同的规则,使我们可以编写例如:

template<typename T>
Foo<T>::Foo(Foo const&) = default;
Run Code Online (Sandbox Code Playgroud)

...而不是更冗长:

template<typename T>
Foo<T>::Foo(Foo<T> const&) = default;
Run Code Online (Sandbox Code Playgroud)

  • @PasserBy - 好吧,也许不像我想的那么冗长:) (3认同)
  • 不是'Foo <T> :: Foo <T>(随便)`形错了? (2认同)