侯捷C++手把手教学:构造函数、参数传递与返回值

    科技2023-10-25  104

    1.初始化、赋值 使用初始列比使用赋值效率更高。

    complex(double r=0,double i=0) :re(r),im(i) //初始列,初值列 { } complex(double r=0,double i=0) { re=r;im=i; } //赋值

    不带指针的类,多半不用写析构函数。 一个以上的构造函数,函数名称可能一样,但是只要参数不同,利用重载,编译器会根据参数的类型和参数的个数改变其函数名。 重载构造函数,不能产生二义性。

    2. 参数传递与返回值 const对象只能调用const成员函数。 类对象作为函数的形参,标准传递方式是pass_by_reference,可避免拷贝类对象花费不必要的开销。 当函数的返回值是一个内置类型或者函数内临时生成的对象,则需要按值传递pass_by_value。 函数按值传递时,实际上将获得的是实参的副本,并将它压入函数栈,也就是说在函数内修改这个副本,是不影响实参的,但此副本影响指针指向的对象。 pass_by_reference:引用底层是一个指针(常量)。最好都传引用,速度快。 友元函数不是类成员,但友元函数可以访问类的私有数据成员。 相同class的各个objects互为友元。 临时变量不能返回引用。

    Processed: 0.017, SQL: 9