
C++ 深度解析教程
文章平均质量分 87
C++既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计。
Exp.Joker
这个作者很懒,什么都没留下…
展开
-
C++ 深度解析教程(十八)拾遗:令人迷惑的写法、技巧:自定义内存管理、异常处理深度解析、函数的异常规格说明、动态内存申请的结果
统计对象中某个成员变量的访问次数new关键字创建出来的对象位于什么地方?如何在指定的地址上创建C++对象?如果析构函数中抛出异常会发生什么情况?如何判断一个函数是否会抛出异常,以及抛出哪些异常?...原创 2022-06-17 11:01:42 · 565 阅读 · 0 评论 -
C++ 深度解析教程(十七)C 语言异常处理、C++ 中的异常处理、C++中的类型识别
C 语言异常处理1、异常处理2、编程实验:除法操作异常处理3、异常处理的方式4、编程实验:除法操作异常处理优化5、异常处理的方式6、实例分析:异常处理代码分析7、问题C++中有没有更好的异常处理方式?8、小结六十四、C++ 中的异常处理(上)1、C++异常处理2、编程实验:C++异常处理初探3、C++异常处理4、编程实验:异常类型匹配5、小结六十五、C++ 中的异常处理(下)1、C++中的异常处理2、问题为什么要在catch中重新抛出异常?3、C++中的异常处理4、编程实验:异常的重新解释5、C++...原创 2022-06-17 10:52:47 · 669 阅读 · 0 评论 -
C++ 深度解析教程(十六)函数模板的概念和意义、深入理解函数模板、类模板的概念和意义、类模板深度剖析、数组类模板、智能指针类模板、单例类模板
C++中有几种交换变量的方法?定义宏代码块 VS 定义函数C++中有没有解决方案集合两种方法的优点?对于Swap函数可以考虑下面的泛型写法Swap泛型写法中的T不是一个具体的数据类型,而是泛指任意的数据类型。当函数重载遇见函数模板会发生什么?在C++中是否能够将泛型的思想应用于类?类模板特化与重定义有区别吗?函数模板可以特化吗?当需要重载函数模板时,优先考虑使用模板特化;当模板特化无法满足需求,再使用函数重载!......原创 2022-06-16 23:52:52 · 611 阅读 · 0 评论 -
C++ 深度解析教程(十五)C++ 对象模型分析、C++ 中的抽象类和接口、被遗弃的多重继承、关于动态内存分配、关于虚函数
单继承某个类+实现(多个)接口new和malloc的区别是什么?delete和free的区别是什么?构造函数是否可以成为虚函数?析构函数是否可以成为虚函数?构造函数中是否可以发生多态?析构函数中是否可以发生多态?...原创 2022-06-16 23:43:53 · 553 阅读 · 0 评论 -
C++ 深度解析教程(十四)父子间的冲突、同名覆盖引发的问题、多态的概念和意义
子类中是否可以定义父类中的同名成员? 可以如果可以,如何区分?如果不可以,为什么? 可以子类中定义的函数是否能重载父类中的同名函数?在编译这个函数的时候,编译器不可能知道指针p究竟指向了什么。但是编译器没有理由报错。于是,编译器认为最安全的做法是调用父类的print函数,因为父类和子类肯定都有相同的print函数。编译器的处理方法是合理的吗?是期望的吗?...原创 2022-06-16 23:32:58 · 567 阅读 · 0 评论 -
C++ 深度解析教程(十三)继承的概念和意义、继承中的访问级别、不同的继承方式、继承中的构造与析构
继承的概念和意义1、思考:类之间是否存在直接的关联关系?2、生活中的例子3、实例分析:组合关系的描述4、类之间的组合关系5、生活中的例子6、惊艳的继承7、编程实验:继承初体验8、惊艳的继承9、继承的意义继承是C++中代码复用的重要手段。通过继承,可以获得父类的所有功能,并且可以在子类中重写已有功能,或者添加新功能。10、编程实验:继承的强化练习11、小结四十四、继承中的访问级别1、值得思考的问题子类是否可以直接访问父类的私有成员?2、思考过程3、编程实验:继承中的访问级别4、继承中的访问级别5、编程...原创 2022-06-16 23:26:26 · 495 阅读 · 0 评论 -
C++ 深度解析教程(十二)类型转换函数
避免编译器的隐式类型转换,确保两个类型一致普通类型与类类型之间能否进行类型转换?类类型之间能否进行类型转换?旧式的C方式强制类型转换 可以类类型之间的相互转换? !类型转换函数 VS 转换构造函数...原创 2022-06-16 23:21:19 · 408 阅读 · 0 评论 -
C++ 深度解析教程(十一)智能指针分析、逻辑操作符的陷阱、逗号操作符的分析、前置操作符和后置操作符
智能指针的使用军规:只能用来指向堆空间中的对象或者变量逻辑操作符可以重载吗?重载逻辑操作符有什么意义?下面的代码有没有区别?为什么?两行语句独立,这个时候没有使用返回值,所以编译期自动优化为一致的。两行语句独立,这个时候没有使用返回值...原创 2022-06-16 23:18:25 · 532 阅读 · 0 评论 -
C++ 深度解析教程(十)数组操作符的重载、函数对象分析、关于string的疑问、关于赋值的疑问
什么时候需要重载赋值操作符?编译器是否提供默认的赋值操作?原创 2022-06-16 13:56:34 · 496 阅读 · 0 评论 -
C++ 深度解析教程(九)类中的函数重载、操作符重载的概念、C++ 中的字符串类、初探 C++ 标准库、完善的复数类
全局函数,普通成员函数以及静态成员函数之间是否可以构成重载?Add函数可以解决Complex对象相加的问题,但是Complex是现实世界中确实存在的复数,并且复数在数学中的地位和普通的实数相同。为什么不能让+操作符也支持复数相加呢?2、编程实验:复数类的实现重复发明轮子并不是一件有创造性的事,站在巨人的肩膀上解决问题会更加有效!...原创 2022-06-16 13:50:28 · 650 阅读 · 0 评论 -
C++ 深度解析教程(八)类的静态成员变量、类的静态成员函数、二阶构造模式、友元的尴尬能力
构造函数能决定的只是对象的初始状态,而不是对象的诞生!! 在类中用friend关键字对函数或类进行声明原创 2022-06-16 13:42:06 · 407 阅读 · 0 评论 -
C++ 深度解析教程(七)对象的构造顺序、对象的销毁、神秘的临时对象、关于析构的疑问、关于const对象的疑问、关于类成员的疑问
对象的构造顺序1、问题:C++中的类可以定义多个对象,那么对象构造的顺序是怎样的?2、对象的构造顺序一3、对象的构造顺序二4、对象的构造顺序三 5、小结二十二、对象的销毁1、对象的销毁2、实例分析:IntArray使用分析3、存在的问题4、析构函数5、编程实验:析构函数使用初探6、编程实验:IntArray类的进化7、析构函数的定义准则当类中自定义了构造函数,并且构造函数中使用了系统资源(如:内存申请,文件打开,等) ,则需要自定义析构函数。8、小结二十四、经典问题解析二1、关于析构的疑问当程序中存...原创 2022-06-15 22:50:19 · 605 阅读 · 0 评论 -
C++ 深度解析教程(六)对象的构造、初始化列表的使用
对象的构造(上)1、问题:对象中成员变量的初始值是多少?2、小实验:下面的类定义中成员变量i和j的初始值为什么?编程实验:成员变量的初始值3、对象的初始化4、构造函数 5、小结十八、对象的构造(中)1、构造函数注意:初始化和赋值是完全不一样的。2、小实例3、编程实验:数组类的实现4、小结十九、对象的构造(下)1、特殊的构造函数2、拷贝构造函数3、什么时候需要进行深拷贝?4、编程实验:数组类的改进IntArray.cIntArray.hmain.c5、小结二十、初始化列表的使用1、问题:类中是否可以定义...原创 2022-06-15 22:36:27 · 783 阅读 · 0 评论 -
C++ 深度解析教程(五)进阶面向对象、类与封装的概念、类的真正形态
日常生活中,我们都习惯于对事物进行分类。那么,这种分类的思想是否可以引入程序设计中呢?问题︰1、类之间的继承关系没有表示出来2、继承而来的属性和行为需要重复声明问题:需要使用划线来表示属性和行为,不适合于编程开发!问题:使用中文进行属性和行为的描述,绝大多数编译器无法接受!思考:如何用程序设计中的概念描述类的属性和行为?电脑一般而言是由CPU,内存,主板,键盘和硬盘等部件组合而成。思考:学习电脑组装需要多少时间?学习电脑组装是否需要学习显示器,内存,主板,键盘和硬盘等部件的设计与制造?例:普通用户使用手机只原创 2022-06-15 22:29:44 · 420 阅读 · 0 评论 -
C++ 深度解析教程(四)C++ 中的新成员、新型的类型转换、关于const 的疑问、关于引用的疑问
C++ 中的新成员1、C++中的动态内存分配实例分析:C++中的动态内存分配2、new关键字malloc 函数的区别3、new关健字的初始化编程实验:初始化动态内存 4、C++中的命名空间5、C++命名空间的定义6、C++命名空间的使用实例分析:命令空间的使用7、小结十一、新型的类型转换1、强制类型转换2、问题。。。强制类型转换在实际工程中是很难完全避免的!如何进行更加安全可靠的转换?3、新式类型转换实例分析:新式类型转化初探4、小结十二、经典问题解析一1、关于const 的疑问2、关于引用的疑问3、小..原创 2022-06-15 19:13:44 · 553 阅读 · 0 评论 -
C++ 深度解析教程(三)内联函数分析、函数参数的扩展、函数重载分析
重载在自然语言中是随处可见的。那么程序设计中是否也有重载呢?下面的函数指针将保存哪个函数的地址?第一个ps:函数的类型由返回值,参数类型和参数个数共同决定;函数类型 = 参数列表 + 返回值...原创 2022-06-15 19:07:39 · 565 阅读 · 0 评论 -
C++ 深度解析教程(二)进化后的const分析、布尔类型、引用的本质分析
C++中的const 注意:(为了兼容C语言)C++编译器虽然可能为const常量分配空间,但不会使用其存储空间中的值。原创 2022-06-15 18:59:51 · 534 阅读 · 0 评论 -
C++ 深度解析教程(一)学习C++的意义、C到C++的升级
如何提高UNIX的开发效率?当面向过程方法论暴露越来越多的缺陷的时候,业界开始考虑在工程项目中引入面向对象的设计方法,而第一个需要解决的问题就是︰高效的面向对象语言,并且能够兼容已经存在的代码。学习C++并不会影响原有的C语言知识,相反,学习C++可以让我们学到更多的软件设计方法。 C++兼容C语言的特性,C++保留了过多的低级语言的特性,java语言之父出现了,通过剪裁C++,使得JAVA更加纯正的面向对象,语法也更简单, 但是java是半编译型语言,需要虚拟...原创 2022-06-15 18:01:27 · 583 阅读 · 0 评论