C++基础学习笔记----第十四课(new和malloc的区别、单例模式等深入) 本节主要讲new关键字和malloc函数的差别,编译器对构造函数调用的实质,单例模式的实现等。欢迎加入QQ交流群:166482595new和malloc的差别1.malloc和free是C语言的库函数,以字节为单位申请堆空间。new和delete是C++的关键字,以类型为单位申请堆空间。malloc和free单纯的对内存申请和释放,对于类类型new和delete还负责构造函数和析构函数
C++基础学习笔记----第十三课(操作符重载-下) 本节主要讲使用成员函数重载操作符,包括[],=,(),->四种操作符的重载以及&&和||的问题。类的成员函数进行操作符重载基本概念类的成员函数也可以进行操作符的重载。类的普通成员函数是被C++编译器默认的隐藏了一个默认的参数this指针,这里的这个this指针指向的是当前的对象。所以在使用类的成员函数在进行操作符重载的时候要比全局函数少一个参数,左操作数。不需要使用friend关键字。
C++基础学习笔记----第十二课(操作符重载-上) 本节主要讲的是C++函数标注库的定义和常见的使用方法以及程序中的全局函数进行操作符重载。C++标准库C++标准库和C语言标准库的定义有很多类似之处(仅仅局限于定义)。C++标准库并不是C++语言的一部分,C++标准库是由C++语言编写而成的类库和函数的集合。C++标准库中定义的类和对象都位于std命名空间中,这样可以防止标准库中的类和对象与其他厂商的类和对象发生冲突。标准库的基本格式:
C++基础学习笔记----第十一课(类的静态成员、对象模型初步认识) 主要讲解了静态成员的本质以及静态成员和普通成员的差别,通过对象模型的基本知识体现了静态成员函数和普通函数的差别。类的静态成员普通成员变量普通成员变量受到public和private两个关键字的限制,可以通过类的对象名访问具有public的普通成员变量,普通的成员变量不能够在类的对象之间共享。静态成员变量1.在C++中可以定义静态成员变量和静态成员函数,静态成员属于整个类
C++基础学习笔记----第八课(类的封装) 本节主要讲类的类的组合的基本概念、类的封装的基本概念以及类成员作用域的问题,最后实现了一个计算器的运算类。当使用类时,不需要关心类的具体实现细节,当创建一个类时,才要考虑其内部的实现细节。基本概念类的属性:主
C++基础学习笔记----第七课(面向对象的基本概念) 主要讲面向对象的基本概念和一些概念,以及实现简单的面向对象C++程序。类和对象基本概念类和对象是面向对象中的两个基本概念,类是指一类事物,是一个抽象的概念。对象是指某一个类的实体,是一个具体存在的事物。类是一中模板,可以通过这种模板创建出不同的对象实例。对象实例是类模板的一个具体实现。一个类可以有很多个对象,而一个对象必然属于某个类。类和对象的意义类用于抽象的描述一类事物所
C++基础学习笔记----第六课(const和引用的扩展、重载函数和C方式编译的深入) 主要讲了const和引用的一些扩展和注意事项,重载函数的和extren "C"结合使用的本质,以及引用的真正的理解方式。const的引用
C++基础学习笔记----第五课(动态内存分配、命名空间、强制类型转换) 本节主要讲了动态内存分配new和delete关键字的使用方法以及和malloc的差别,命名空间主要讲了命名空间的使用法和C++支持的四种强制类型转换。C++中的动态内存分配基本概念和使用方法在C语言中,malloc和free是C库提供的函数,其实它并不属于C语言的本身(毕竟是函数嘛),在C++中一样可以得到支持,但是C++中申请动态内存(new)和释放动态内存(delete)使用的是两
C++基础学习笔记----第四课(函数的重载、C和C++的相互调用) 本节主要讲了函数重载的主要概念以及使用方法,还有C和C++的相互调用的准则和具体的工程中的使用技巧。函数重载1.基本概念函数重载就是用同一个函数名来定义不同的函数。使用不同的函数参数来搭配同一个函数名。基本例程如下:#include #include int func(int a){ return a;}int func(int x, int y){ retur
C++基础学习笔记----第三课(内联函数、默认参数、占位参数) 主要说明从C到C++函数的一些变化,内联函数主要说了内联函数的产生和编译器的编译等,默认参数和占位参数是C++为了开发者的方便而产生的,这部分知识整体来说理解起来不是很困难,但是比较琐碎,而且需要记住的东西比较多。
C++基础学习笔记----第二课(引用的基础知识) 主要讲述C++中的bool类型变量的细节,三目运算符相对于C语言的升级,重点讲的是C++的引用以及引用的扩展和注意事项。C++中的bool类型变量1.在C语言中并没有真正的bool类型变量,当在C中需要使用到bool类型变量的时候将其退化成为int类型来进行使用。2.C++中的bool类型变量是C++中的一个基本类型,C++中的bool类型变量只能取true和false,这里的tr
C++基础学习笔记----第一课补充(符号表) 【矫情一下,今天是找完工作第一天学习。没有那么多好的offer给大家讲,也没多光彩的历程来说。总结就是最痛苦的是九月,最最痛苦的十月,比十月还痛苦的是十一月。只能说说的是路漫漫其修远,吾将上下求索。】 很早就想写一篇关于符号表的学习小结,可是迟迟不能下笔。其一是因为符号表在编译器的设计中占有举足轻重的地位【我们在学习编译原理的时候更多的是注重principles,而没有关心一
C语言数据结构----栈与递归 本节主要说程序中的栈函数栈的关系以及栈和递归算法的关系。一、函数调用时的栈1.程序调用时的栈是也就是平时所说的函数栈是数据结构的一种应用,函数调用栈一般是从搞地质向低地址增长的,栈顶为内存的低地址,栈底为内存的高地址。函数调用栈中存储的是数据的活动记录。活动记录是函数一些信息。如下如所所示:2.假如有如下程序:#include #include void fun(c
C语言数据结构----栈的应用(四则运算) 本节主要说利用C语言程序来实现一个可以进行四则整数运算的计算器,采用的仍然是链式栈的复用方式,分步骤进行说名,首先说明普通的四则运算表达式和计算机可以识别的四则运算表达式的转化,然后说具体的程序实现四则运算的方式。一、中缀表达式到后缀表达式的转换1.我们平时进行运算的表达式如下所示:9 + ( 3 - 1 ) * 5这种运算和逻辑思维方式十分符合我们的思维方式,但是并不符合计算机的