构造函数与析构函数是类的重要组成部分,构造函数常用来完成对象生成时的数据初始化工作,而析构函数则常用于在对象销毁时释放对象中所申请的资源;
当对象生成时,编译器会自动产生调用其类构造函数的代码,在编译过程中可以为类中的数据成员赋予恰当的初值。当对象销毁后,编译器调用析构函数;
构造函数与析构函数是类的重要组成部分,构造函数常用来完成对象生成时的数据初始化工作,而析构函数则常用于在对象销毁时释放对象中所申请的资源;
当对象生成时,编译器会自动产生调用其类构造函数的代码,在编译过程中可以为类中的数据成员赋予恰当的初值。当对象销毁后,编译器调用析构函数;
在C++中,结构体和类都具有构造函数、析构函数和成员函数,两者只有一个区别,结构体访问控制默认为public,而类的默认访问控制为private。而对C++的结构来说,访问控制是在编译期间进行的,在编译成功后,是不会在访问控制层面做任何检查和限制,所以本质来说,C++的结构与类并无区别;两者原理相同,只是类型名称不同;
C语言中的结构体是一种复合数据结构,可以将不同数据类型的变量进行封装
数组和指针都是对内存地址操作,但是它们有诸多不同之处,数组是相同类型的数据集合,以线性方式连续存储在内存中;而指针只是保存一个地址值的4字节变量。在使用中,数组是一个地址常量值,保存数组首元素地址,不可修改;而指针是一个变量,只要修改指针所保存的地址数据,就可以随意访问;
变量的作用域指的是变量在源码中可以被访问到的范围。全局变量属于进程作用域,在整个进程中都可以访问到这个全局变量;静态变量属于文件作用域,在当前源码文件中可以访问;局部变量属于函数作用域,在函数内可以访问到;
当函数执行时,程序流程会转移到函数体的实现位置处,只要遇到return语句或”}”符号才返回到下一条语句的地址处;
VC++使用三种语法来完成循环结构,分别为do、while、for;
switch是比较常用的分支结构,并且效率上优于IF…ELSE IF等多分支结构。
流程控制语句的识别是进行逆向分析和还原高级代码的基础;
本章介绍了各种表达式的汇编形式以及汇编时代码优化的方法,如遇到数学模型无法理解,可跳过,后续将有结论;