横线处是构造函数,初始化类变量时会被调用。
加粗的内容是属于初始化列表的语法。_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();
}