不聪明的小侦探 2022-11-03 18:44 采纳率: 75%
浏览 11
已结题

c++单目运算符重载

img

img


请问画红横线的是什么作用,还有为什么可以使用Complex(float x=0,float y=0) :_x(x),_y(y) 为什么可以这样使用加粗的内容。初学者望解答。

  • 写回答

1条回答 默认 最新

  • 冷0_O 2022-11-03 19:02
    关注

    横线处是构造函数,初始化类变量时会被调用。
    加粗的内容是属于初始化列表的语法。_x(x)的小括号里面的x代码你传入的参数,_x就是类的成员变量了。就是把你传入参数的值赋值给对应的成员变量。
    而float x=0,float y=0就是指初始化默认值,你如果不传值就执行这个值。
    你看我的代码,初始化了两个类变量,a我没传值,x、y就都是0,b我给了两个参数,那么x、y就是我传入的参数的值。

    
    #include <iostream>
    
    class Complex {
    public:
        Complex(int x = 0, int y = 0) : x(x), y(y) {}
        ~Complex() {}
        void PrintData() {
            std::cout << "x = " << this->x << std::endl
                      << "y = " << this->y << std::endl;
        }
    
    private:
        int x;
        int y;
    };
    
    int main(void) {
        Complex a;
        a.PrintData();
        Complex b{5, 6};
        b.PrintData();
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月13日
  • 已采纳回答 11月5日
  • 创建了问题 11月3日

悬赏问题

  • ¥15 问题重发,R语言:代码运行过程中出现如下警告,请求如何解决!
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 苍穹外卖拦截器token为null
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了
  • ¥15 陆空双模式无人机怎么做
  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关