美文网首页
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