美文网首页
4.2 - <7>类

4.2 - <7>类

作者: 李伟13 | 来源:发表于2020-05-04 22:16 被阅读0次
    double Sales_data::avg_price() const{
    
    }
    

    ::作用域运算符,用来说明该函数被声明在类Sales_data里

    • 定义在类内部的函数是隐式的inline函数

    什么是inline函数?

    <6.5.2内联函数和constexpr函数>

    内联函数在类内定义成员函数(隐式的),在类外定义成员函数必须加inline才能为内联函数(不默认)

    class temp{
      public:
         int  amount;
    
      //构造函数
       temp(int amount){
          this->amount = amount;
       }
      
      //普通成员函数,在类内声明时前面可以不加inline
      void print_amount()
    }
    
    //在类外定义函数体,必须在前面加上inline关键字才能为内联
    inline void temp:: print_amount(){
      cout << amount << endl;
    }
    
    • 内联函数一般用在函数规模小,函数调用开销可能相当于甚至超过执行函数本身的时间.

    参考博客

    https://www.cnblogs.com/chenwx-jay/p/inline_cpp.html

    常量成员函数

    std::string isbn() const{return boolkNo;}
    

    默认情况下,this是一个隐性的指向类类型非常量版本的常量指针.T *const this.故不能指向常量的.
    C++的做法是吧const放在成员函数的后边,成为常量成员函数.
    常量成员函数不能修改类的数据成员

    • 一般来说,如果非成员函数是类接口的组成部分,则这些函数的声明应该与类在同一个头文件内。

    <7.1.4 构造函数>

    • 对象被创建时,执行构造函数.
    • 创建一个const类对象时,知道构造函数完成舒适化过程,对象才真正取得"常量属性",构造函数在const对象的构造过程中可以向其写值
    Sales_data(const std::string &s):bookNo(s),units_sold(0),revenue(0){ }
    通过 : 完成构造函数初始值列表的创建
    

    <7.2 访问控制与封装>

    访问说明符

    public
    private
    

    使用友元允许其他类或函数访问它的非公有成员.
    可以是类的友元,也可以是成员函数的友元

    class 与 struct关键字定义类的唯一区别

    struct:
    定义在第一个访问说明符前的成员是public的
    class
    定义在第一个访问说明符前的成员是private的

    封装的优点
    • 确保用户代码不会无意间破坏封装对象的状态。
    • 被封装的类的具体实现细节可以随时改变,而无须调整用户级别的代码。

    相关文章

      网友评论

          本文标题:4.2 - <7>类

          本文链接:https://www.haomeiwen.com/subject/mytughtx.html