C++day12笔记无代码

简介: 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

目录
相关文章
|
4月前
|
C++
C++ 语言异常处理实战:在编程潮流中坚守稳定,开启代码可靠之旅
【8月更文挑战第22天】C++的异常处理机制是确保程序稳定的关键特性。它允许程序在遇到错误时优雅地响应而非直接崩溃。通过`throw`抛出异常,并用`catch`捕获处理,可使程序控制流跳转至错误处理代码。例如,在进行除法运算或文件读取时,若发生除数为零或文件无法打开等错误,则可通过抛出异常并在调用处捕获来妥善处理这些情况。恰当使用异常处理能显著提升程序的健壮性和维护性。
78 2
|
4月前
|
算法框架/工具 C++ Python
根据相机旋转矩阵求解三个轴的旋转角/欧拉角/姿态角 或 旋转矩阵与欧拉角(Euler Angles)之间的相互转换,以及python和C++代码实现
根据相机旋转矩阵求解三个轴的旋转角/欧拉角/姿态角 或 旋转矩阵与欧拉角(Euler Angles)之间的相互转换,以及python和C++代码实现
328 0
|
1月前
|
算法 安全 C++
提高C/C++代码的可读性
提高C/C++代码的可读性
51 4
|
2月前
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
353 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
|
3月前
|
C++
继续更新完善:C++ 结构体代码转MASM32代码
继续更新完善:C++ 结构体代码转MASM32代码
|
3月前
|
C++ Windows
HTML+JavaScript构建C++类代码一键转换MASM32代码平台
HTML+JavaScript构建C++类代码一键转换MASM32代码平台
|
3月前
|
C++
2合1,整合C++类(Class)代码转换为MASM32代码的平台
2合1,整合C++类(Class)代码转换为MASM32代码的平台
|
3月前
|
前端开发 C++ Windows
C++生成QML代码与QML里面集成QWidget
这篇文章介绍了如何在C++中生成QML代码,以及如何在QML中集成QWidget,包括使用Qt Widgets嵌入到QML界面中的技术示例。
|
4月前
|
程序员 C++ 开发者
C++命名空间揭秘:一招解决全局冲突,让你的代码模块化战斗值飙升!
【8月更文挑战第22天】在C++中,命名空间是解决命名冲突的关键机制,它帮助开发者组织代码并提升可维护性。本文通过一个图形库开发案例,展示了如何利用命名空间避免圆形和矩形类间的命名冲突。通过定义和实现这些类,并在主函数中使用命名空间创建对象及调用方法,我们不仅解决了冲突问题,还提高了代码的模块化程度和组织结构。这为实际项目开发提供了宝贵的参考经验。
69 2
|
4月前
|
C++
拥抱C++面向对象编程,解锁软件开发新境界!从混乱到有序,你的代码也能成为高效能战士!
【8月更文挑战第22天】C++凭借其强大的面向对象编程(OOP)能力,在构建复杂软件系统时不可或缺。OOP通过封装数据和操作这些数据的方法于对象中,提升了代码的模块化、重用性和可扩展性。非OOP方式(过程化编程)下,数据与处理逻辑分离,导致维护困难。而OOP将学生信息及其操作整合到`Student`类中,增强代码的可读性和可维护性。通过示例对比,可以看出OOP使C++代码结构更清晰,特别是在大型项目中,能有效提高开发效率和软件质量。
37 1