This question already has answers here:
What is this weird colon-member (“ : ”) syntax in the constructor?

(12个答案)


5年前关闭。




我一直在阅读代码,但对代码中的一行感到困惑:
这是代码的一部分:
class mom_set
{
public:
    int nm;
    int *mom_ind,*mode_off,*mode_count,**mode;
    int n_mom,n_eff;
    int order;
.......
.....
    mom_set(int nm0=9):nm(nm0)
    { mom_ind=new int[(nm*2+1)*(nm*2+1)*(nm*2+1)];
      mode_off=new int[3*nm*nm+1];
      mode=new int*[3*nm*nm+1];
      mode_count=new int[3*nm*nm+1];
      clear();}
......
.....
};

我不确定如何解释这一行“mom_set(int nm0 = 9):nm(nm0)”。你能解释一下吗?

最佳答案

mom_set :与类名相同,表示它是构造函数

(int nm0 = 9):参数列表。类型为int的一个参数,它是可选的。如果未传递,则此参数默认为9

::constructor initializer list的开头

nm(nm0):成员nm初始化为值nm0
{...} :构造函数主体的其余部分

关于c++ - 在C++类中使用的默认值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31704253/

10-11 16:57