![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
m0_43426943
这个作者很懒,什么都没留下…
展开
-
C++语言学习(十八)——异常处理
C++语言学习(十八)——异常处理文章来源:https://blog.51cto.com/9291927/2164586一、C语言异常处理异常是指程序在运行过程中产生可预料的执行分支。如除0操作,数组访问越界、要打开的文件不存在。Bug是指程序中的错误,是不被预期的运行方式。如野指针、堆空间使用结束未释放。C语言中处理异常的方式一般是使用if…else…分支语句。double divide(double a, double b){ const double delta = 0.0000转载 2020-08-09 17:21:15 · 393 阅读 · 0 评论 -
C++语言学习(十五)——C++抽象类与接口
C++语言学习(十五)——C++抽象类与接口文章来源:https://blog.51cto.com/9291927/2148698一、抽象类与接口1、抽象类简介面向对象的抽象类用于表示现实世界的抽象概念,是一种只能定义类型,不能产生对象的类(不能实例化),只能被继承并被重写相关函数,直接特征是相关函数没有完整实现。C++语言没有抽象类的概念,通过纯虚函数实现抽象类。纯虚函数是指定义原型的成员函数,C++中类如果存在纯虚函数就成为了抽象类。抽象类只能用作父类被继承,子类必须实现父类纯虚函数的具体功转载 2020-08-06 22:07:37 · 188 阅读 · 0 评论 -
C++语言学习(十四)——C++类成员函数调用分析
C++语言学习(十四)——C++类成员函数调用分析文章来源:https://blog.51cto.com/9291927/2148698一、C++成员函数1、C++成员函数的编译C++中的函数在编译时会根据命名空间、类、参数签名等信息进行重新命名,形成新的函数名。函数重命名的过程通过一个特殊的Name Mangling(名字编码)算法来实现。Name Mangling算法是一种可逆的算法,既可以通过现有函数名计算出新函数名,也可以通过新函数名逆向推导出原有函数名。Name Mangling算法可以转载 2020-08-06 21:15:24 · 754 阅读 · 0 评论 -
C++语言学习(十三)——C++对象模型分析
C++语言学习(十三)——C++对象模型分析文章来源:https://blog.51cto.com/9291927/2148687一、C++对象模型分析1、类对象模型的内存布局class是一种特殊的struct,class与struct遵循相同的内存对齐原则,class中的成员函数与成员变量是分开存放的,每个对象拥有独立的成员变量,所有的对象共享类中的成员函数。运行时,类对象退化为结构体的形式:A、所有成员变量在内存中依次排布B、由于内存对齐的存在,成员变量间可能存在内存间隙C、可以通过内存转载 2020-08-05 16:19:45 · 246 阅读 · 0 评论 -
C++语言学习(十一)——多态
C++语言学习(十一)——多态文章来源:https://blog.51cto.com/9291927/2147905一、多态简介C++中的多态(polymorphism)是指由继承而产生的相关的不同的类,其对象对同一消息会作出不同的响应。多态性是面向对象程序设计的一个重要特征,能增加程序的灵活性。可以减轻系统升级,维护,调试的工作量和复杂度。多态是一种不同层次分类下的重要联系,是一种跨层操作。二、多态实现的前提赋值兼容规则是指在需要基类对象的任何地方都可以使用公有派生类的对象来替代。赋值兼容转载 2020-08-05 10:42:21 · 111 阅读 · 0 评论 -
C++语言学习(十)——继承与派生
C++语言学习(十)——继承与派生原文链接:添加链接描述一、类之间的关系1、类之间的组合关系组合关系是整体与部分的关系。组合关系的特点:A、将其它类的对象作为当前类的成员使用B、当前类的对象与成员对象的生命周期相同C、成员对象在用法上与普通对象相同Computer类由其它多个部件类组合而成,当Computer销毁时,其它部件对象同时销毁。#include using namespace std;class Memory{public:Memory(){cout <&l转载 2020-08-04 21:14:25 · 214 阅读 · 0 评论 -
C++语言学习(八)——操作符重载
C++语言学习(八)——操作符重载文章来源:(https://blog.51cto.com/9291927/2143237)一、操作符重载基础1、操作符重载的语法通过operator关键字可以定义特殊的函数,operator本质是通过函数重载操作符。Type operator operatorname(const Type p1, const Type p2){ Type ret; return ret;}2、友元函数重载操作符可以将操作符重载函数声明为友元函数。#i转载 2020-08-04 15:17:33 · 220 阅读 · 0 评论 -
C++语言学习(六)——二阶构造模式
C++语言学习(六)——二阶构造模式一、构造函数的问题构造函数存在的问题:A、构造函数只提供自动初始化成员变量的机会B、不能保证初始化逻辑一定成功,如申请系统资源可能失败C、执行return语句后构造函数立即结束构造函数创建的对象可能是半成品对象,半成品对象是合法的对象,但是程序bug的来源之一。因此实际工程开发过程中使用二阶构造模式。二、二阶构造模式1、二阶构造模式简介由于构造函数存在的潜在问题,实际工程开发中类对象的构造过程如下:A、资源无关的初始化操作资源无关的初始化操作一般不会转载 2020-08-03 23:22:37 · 150 阅读 · 0 评论 -
C++语言学习(七)——友元
C++语言学习(七)——友元一、友元简介1、友元简介面向对象编程的类的设计机制实现了数据的隐藏与封装,类的成员变量一般定义为私有成员,成员函数一般定义为公有的,是类与外部的通信接口。在实践中,类外的某些函数需要频繁地访问类的成员变量,可以将类外的函数定义为类的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检查等都需要时间开销),但友元破坏了类的封装性和隐藏性,使得非类的成员函数可以访问类的私有成员。友元是C++语言中的一种关系,友元关转载 2020-08-03 22:07:29 · 124 阅读 · 0 评论 -
C++语言学习(四)——类与对象
C++语言学习(四)——类与对象一、构造函数(constructor)二、拷贝构造函数(copy constructor)三、析构函数(destructor)四、this指针五、赋值操作符重载六、函数与类对象七、栈和堆上的对象和对象数组八、类成员函数的存储方式文章来源:https://blog.51cto.com/9291927/2143145一、构造函数(constructor)1、构造函数简介C++语言中,构造函数是与类名相同的特殊成员函数。在类对象创建时,自动调用构造函数,完成类对象的初始化转载 2020-08-02 10:18:33 · 263 阅读 · 0 评论