繁体   English   中英

C ++成员函数定义类前缀快捷方式(也是模板)

[英]C++ member function definition class prefix shortcut (also template)

鉴于以下类声明:

template <int N>
class MyClass {

public:
    MyClass();
    ~MyClass();
};

以及以下定义:

template <int N> 
MyClass<N>::MyClass() {
}

template <int N>
MyClass<N>::~MyClass() {
}

我有两个问题:

  1. 我是否每次都必须编写MyClass:: :(有和没有模板)?
  2. 我是否必须在每个构造函数和析构函数之前编写template <int N>

来自[class.mfct]:

如果成员函数的定义在词法定义之外是词法定义,则成员函数名称应使用::运算符通过其类名限定。

如果要在类定义之外定义成员函数,则每次都需要编写MyClass:: 由于MyClass是一个模板,因此您需要确定您正在定义template <int N> MyClass<N>成员函数。 你的两个问题的答案都是肯定的(尽管对于#2来说,它是针对每个成员函数的 - 而不仅仅是构造函数和析构函数)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM