#include <iostream>

using namespace std;

//在写class构造函数的时候其实适合struct结构体是差不多的
//因为struct 不写默认是public 所以在写class类中的构造函数的时候 记得要加public
struct Person{//类 和结构体是有构造函数的
    int age, height;
    double money;
    //空的默认构造函数会默认给出吗?
    //只有在没有其他需要传参的构造函数的情况下 会默认给出
    
    Person(){}//因为下面的要传参 所以定义一个没有参数的构造函数
    
    Person(int _age, int _height){}
    
    // Person(int _age, int _height, double _money){//定义构造函数 构造函数是没有类型的 名字一定和结构体的名字完全一样的
    //     age = _age;
    //     height = _height;
    //     money = _money;
    // }
    
    // 给构造函数成员赋值还有一种特殊写法
    Person(int _age, int _height, double _money) : age(_age), height(_height), money(_money){}
    //意为 把下划线age 赋值给age 把下划线height赋值给height 把下划线height赋值给height
};

int main(){
    // Person(18, 180, 100.0);//这是提供参数的构造函数
    // Person p;//这是没有提供参数的构造函数
    Person p ={18, 180};//按照构造函数顺序进行赋值 后面没有传入的变量会被默认设置为0
    
    cout << p.money << endl;
    return 0;
}