2021/10/26 paradigm 笔记

问题1:C++的引用和C的指针是“汇编级”等价的,那么为什么在C++中还要有指针这种东西呢?

答:C++的引用,不能“换绑”,是“终身绑定”的!而C的指针是可以“换绑”的,利用C的指针可以实现诸如“链表”之类的数据结构!

引用” 在概念上与“真正的数组” 很类似,视为一种常量的“绑定关系”,定义之后,“绑定关系”就不能变了!

问题2:什么的真正的“OOP”?

有些人仅仅是偶尔使用“对象”和“引用”,并不是真正的OOP;他们认为“引用”是更方便的指针,更不容易混淆;他们认为“对象”就是在定义中有一些“方法”的结构体而已!
⭐ “继承”和“模板”的思想,才是OOP的核心!!!真正的OOP纯粹主义者,会将“对象”视为一个活生生的实体,它能够自我维护,能够与外界进行“交流”!

⭐ 从底层机制上来看,“结构体”和“类”是以同样的模式存储在内存单元之中,可以说是完全的相同!只不过在C++中,结构体是可以定义“构造函数”、“析构函数”和“方法”的;结构体和类的唯一不同之处在于:“类”的默认访问修饰符是“private”,“结构体”的默认访问修饰符是“public”。

问题3:C++的静态方法是什么?和非静态方法有什么区别?

⭐ 静态方法:“类”的方法前加“static”限定!这样的方法在调用时,不会传入“this”指针,不用指明“对象(结构体)”!因为:该方法为“”服务!即使“对象”不同,行为也是一样的!
⭐ 非静态方法:不用“static”限定的方法!这样的方法在调用时,会传入“this”指针,会隐式知名“对象(结构体)”!因为:该方法是为“对象”服务的!根据对象的不同,可能会产生不同的行为!!!

软件测试策略

对“作业”的功能性测试是考察“需求”实现的重要方法!为了完美而稳妥地提交你的实现方案,必须在是实现方案中集成“测试”工具!

测试用例:就是对“测试任务”的描述,包括完整的测试目标、测试环境、测试步骤、输入数据、预期结果,测试脚本等,输出pdf文档!

测试程序三步走
(输入数据)——(预期结果)——(预期与实际结果对比)

  • 黑盒测试
    将你的子程序视为一个“黑盒子”,你看不见里面的结构!通过阅读描述函数行为和使用方法的“说明书”,去设计并运行你的测试程序,观察运行结果是否如你所想!!!
    ① 创建一系列的输入数据;
    ② 构造小的测试分支!
    问题:你很难保证你能够覆盖所有的分支;

  • 白盒测试
    白盒测试依赖于实现该函数的程序员的知识!当你写一个函数的时候,你就可以开始去思考“要构造怎样的测试用例去覆盖全部的分支呢?”一个很使用的思考测试的方法就是基于“控制流”进行图形化!if/else表明你有2个分支需要去验证;if/else if / else 表明你有3个分支需要去验证;你可以使用你的知识去验证各种“边界条件”,比如循环while()结构的“终止条件”!

  • 压力测试
    开发的前期,你可能使用比较小的测试“数据集”,仅仅测试几个特殊的“边界条件”,但是之后,你需要使用较大的测试“数据集”,构造较为极端的环境,观察系统在压力下的表现!

  • 回归测试
    回归测试,指的是修改完代码中的bug后,用以前测出bug的数据再测!看看结果是否正常,有没有引入新的bug!注意,以前有问题的代码不要删掉,你可以注释掉,然后把“bug”注明,方便以后维护!

paradigm 作业类型:

① 泛化的语言、图形:更高的抽象层次上,表述“实现方法”、“运行机理”;
② 具体化语言的:程序设计 + 测试用例;涵盖8-bit(MCS-51、PIC18、STM8)、PIC-24、ARM-32、x86-64机器的高级语言、汇编语言和微架构,在实际机器中体会“概念”。
③ 问题集:口头回答一些问题,做一些小小的计算题!

preprocessor

#define

本质上:#define 就是个 “查找替换器” ;
#define label sth123abc
.c文件中查找到 label 字样,并替换为“sth123abc”
preprocessor是很傻的,替换过程中,不会检查语言语法的!

#define KWidth 480
#deifne KHeight 80
#define KPerimeter 2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值