c++ 在模板类中附加的冒号是什么意思,ClassName〈T,SIZE>::ClassName:[副本]

yi0zb3m4  于 2023-01-22  发布在  其他
关注(0)|答案(1)|浏览(185)
    • 此问题在此处已有答案**:

C++11 member initializer list vs in-class initializer?(3个答案)
What is "member initializer" in C++11?(5个答案)
17小时前关门了。
在这个函数定义中,额外的':'是什么意思?

template <class T, int SIZE> 
class Buffer
{
 public: 
    Buffer();
 private: 
    int _num_items; 
};

template <class T, int SIZE> 
Buffer<T, SIZE>::Buffer() :
    _num_items(0) //What does this line mean?? 
{
   //Some additional code for constructor goes here. 
}
ffscu2ro

ffscu2ro1#

这就是初始化成员变量的方法(您应该这样做)

class Something
{
private:
  int aValue;
  AnotherThing *aPointer;

public:
  Something() 
   : aValue(5), aPointer(0)
  {
     printf(aValue); // prints 5
     if(aPointer == 0) // will be 0 here
       aPointer = new AnotherThing ();
  }
}

这是一个初始化列表-成员将被初始化为给定的值。

相关问题