TBACAMILLE 2018-08-04 09:32 采纳率: 50%
浏览 2740
已采纳

关于C++中结构体的构造函数中带冒号的问题

 struct Matrix {
   int a, b;
     Matrix(int a = 0,int b=0) : a(a),b(b) { }
} m[26];

构造函数中是对里面的成员变量设置默认值,那为什么在上述代码中已经初始化之后还要再加冒号呢?
另外有冒号的这一行是什么意思。新手小白一个,请大神指教,非常感谢

  • 写回答

5条回答

  • threenewbee 2018-08-05 15:23
    关注

    Matrix(int a = 0,int b=0)
    这个可不是“对里面的成员变量设置默认值”
    而是缺省参数
    也就是当你用
    Matrix m()的时候,相当于Matrix m(0,0)
    而Matrix m(123)的时候相当于 Matrix m(123,0)
    缺少的参数由你的缺省值补进去

    至于这个a b参数,并没有传给作为成员变量的a b!!!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容