摘要:
细说new与malloc的10点区别 C++ 自由存储区是否等价于堆? 浅谈new/delete和malloc/free的用法与区别 new和malloc都是在对上开辟内存,但尽量使用new。 使用malloc的注意事项:(1)程序猿必须实现确定对象的长度;(2)malloc返回一个void*指针, 阅读全文
摘要:
构造函数和析构函数,分别对应变量的初始化和清理,变量没有初始化,使用后果未知;没有清理,则会内存管理出现安全问题。 构造函数和析构函数写法 构造函数:与类名相同,没有返回值,不写void,可以发生重载,可以有参数,编译器自动调用,只调用一次。 析构函数:~类名,没有返回值,不写void,不可以发生重 阅读全文
摘要:
内联函数 宏可以避免函数调用带来的开销,但存在两个问题:1)宏没有作用域,没有类型检测,另外定义宏时,需要时刻注意加括号,除此之外,当传入变量自增时,会出现不可避免的错误。2)C++中宏不能作为类的成员函数,因为预处理器不能访问类成员。 内联函数主要为了替代宏,另外,类中的成员函数默认加了inlin 阅读全文
摘要:
初识类(class&struct) 面向对象三大特性:封装、继承和多态。其中不得不谈的就是类,通过类创建一个对象的过程叫实例化,实例化后使用对象可以调用类成员函数和成员变量,其中类成员函数称为行为,类成员变量称为属性。类和对象的关系:类是对象的抽象,对象是类的实例。 从上面的代码中可以看出,在类内或 阅读全文
摘要:
直接上代码,分别是栈上开辟内存,堆上开辟内存 如果是用指针来复制数组,不要用以下代码 因为没有开辟内存,直接对指针自增会出现访问冲突 阅读全文
摘要:
引用,用途是对变量取别名,本质是一个指针常量。 1.初始化 &写在左侧为引用,写在右侧为取地址,引用用法:Type &别名 = 原名。 引用必须初始化,另外初始化后不能再修改指向其他变量 对数组起别名 2.参数传递方式 引用传参和地址传参的作用是一样的,都是为了修改变量值,其中引用后面的a和b相当于 阅读全文
摘要:
C++对C的扩展 1. 双冒号::作用域运算符 代码中对同一个变量多次声明,在代码块中使用时,局部变量会将全局变量隐藏。若在代码块使用变量前添加::,表示为全局变量。 ::表示作用域运算符,如常见的std::cout,std::endl;等,表示cout和endl是std作用域下的标识符。 2. 命 阅读全文
摘要:
彻底搞定C指针-函数名与函数指针 函数名&函数名取地址 函数指针 通常我们可以将指针指向某类型的变量,称为类型指针(如,整型指针)。若将一个指针指向函数,则称为函数指针。 函数名的意义 函数名代表函数的入口地址,同样的,我们可以通过根据该地址进行函数调用,而非直接调用函数名。 另外,还有以下结论: 阅读全文