c++ 构造函数

构造函数是一种特殊的函数,与包含他的类重名。构造函数没有返回值,因此没有返回类型。为构造函数指定返回类型是错误的。

默认构造函数的参数值,有默认参数的构造函数参数声明时是可以省略的【所以此处不能有没有参数的构造函数】

class Box {
    private :
        double length;
        double width;
        double heigth;
    public :
    Box(double lengthValue = 1.0, double widthValue = 1.0, double heigthValue = 1.0) {
        length = lengthValue;
        width = widthValue;
        heigth = heigthValue;
    }
    double volume() {
        return length*width*heigth;
    }
};

int main()
{
#if 0 Box mybox(); //error,先记住
#else
// Box mybox; correct
  Box mybox{}
; //correct
#endif
std::cout
<< mybox.volume() << std::endl; return 0; }

构造函数中使用初始化列表

Box::Box(double lv, double wv, double hv) : length{lv}, width{wv}, heigth{hv} {
    ;
}

委托构造函数

class Box {
    private :
        double length = 1.0;
        double width = 1.0;
        double heigth = 1.0;
    public :
    Box(double lengthValue, double widthValue, double heigthValue);
    Box(double side);
    Box() {};

        double volume();
};

Box::Box(double lengthValue, double widthValue, double heigthValue) {
    /*跟在类内部定义构造函数时一致*/
    length = lengthValue;
    width = widthValue;
    heigth = heigthValue;
}
Box::Box(double side):Box(side, side, side) {
    ;
}
double Box::volume() {
    return length*width*heigth;
}

int main()
{
    Box mybox(2);
    std::cout << mybox.volume() << std::endl;
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/rivsidn/p/9318611.html