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

关于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条)

报告相同问题?

悬赏问题

  • ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
  • ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
  • ¥15 远程安装一下vasp
  • ¥15 自己做的代码上传图片时,报错
  • ¥15 Lingo线性规划模型怎么搭建
  • ¥15 关于#python#的问题,请各位专家解答!区间型正向化
  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型
  • ¥15 VB.NET如何绘制倾斜的椭圆