C++day12笔记无代码
1 设计类、求圆的周长
1.1 关键字 class
1.2 class + 类名 { 成员 }
1.3 类的形成 : 成员函数 + 成员属性
1.4 作用域 public : 公共作用域
1.5 属性 : 半径
1.6 行为 : 求圆周长、设置圆半径 、获取圆半径
1.7 测试 : 实例化对象 通过类创建对象 Circle c1;
1.8 给对象赋值 c1.setR(10) 获取半径 c1.getR(); 获取周长 c1.calculateZC();
1.9 设计一个学生类,有姓名和学号,给姓名学号赋值,并且打印学生的信息
2 内联函数
2.1 内联函数的引出 --- 宏函数缺点
2.1.1 必须保障运算完整性,加括号
2.1.2 即便加了括号,有些状况仍然和预期后果不符
2.1.3 宏函数 也不器重作用域
2.2 内联函数 inline
2.3 函数申明和实现必须同时加inline 才算内联函数
2.4 类外部成员函数 默认后面加了inline关键字
2.5 内联函数和编译器关系
2.5.1 退出内联后只是对编译器的一个倡议,有些状况下编译器仍然不会依照内联形式处理函数
2.5.2 循环、 判断、 函数体过于宏大、对函数取地址 ,不会依照内联解决
2.5.3 一个好的编译器,会将短小的函数 暗藏的退出inline 关键字
3 函数的默认参数以及占位参数
3.1 默认参数
3.1.1 在形参前面 = 默认值
3.1.2 如果参数列表中 有一地位有了默认参数,那么从这个地位起从左到右都必须有默认参数
3.1.3 函数的申明和实现 只能有一个有默认参数
3.2 占位参数
3.2.1 函数参数列表中 ( int )只写类型,调用必须要传入参数调用
3.2.2 占位参数也能够有默认参数 (int = 0)
3.2.3 目前用不到占位参数,前面学习符号重载才会用到
4 函数重载
4.1 满足条件
4.1.1 同一个作用域,函数名称雷同
4.1.2 函数参数 类型 、 个数、 程序不同
4.2 函数的返回值 不能够作为函数重载条件
4.3 援用 退出const 和不加const也能够作为重载条件
4.4 函数重载碰到函数默认参数 也须要留神防止二义性
5 extern C 浅析
5.1 函数重载原理 编译器在底层会将函数名字做两次润饰,不便外部拜访函数体
5.2 用处: 在C++下能够运行C语言的文件
5.3 #ifdef __cplusplus 两个下划线 + c plus plus
5.3.1 extern "C" {
5.4 #endif
5.5 #ifdef __cplusplus
5.5.1 }
5.6 #endif
6 类的封装
6.1 C语言的封装
6.1.1 毛病:C语言下没有做类型转换的检测
6.1.2 毛病2: 将属性和行为拆散
6.2 C++封装
6.2.1 将属性和行为作为一个整体,来体现生存中的事物
6.2.2 将这些成员 加以权限管制
6.3 权限
6.3.1 public 私有权限
6.3.2 protected 爱护权限
6.3.3 private 公有权限
6.4 C++中struct 和 class 区别
6.4.1 struct 默认权限 public
6.4.2 class 默认权限 private
7 尽量将成员属性设置为公有
7.1 设置为公有权限的属性,能够本人管制属性的读写操作
7.2 能够将传入数据,进行有效性的检测
8