![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++学习
billy92
这个作者很懒,什么都没留下…
展开
-
问题总结汇总
再汇总一个问题,问题就是做Crc校验的时候,这个问题坑了我一个星期啊具体怎么说呢就是crc校验,一开始真是啥都不知道,做什么的就看文档里面的crc相关的介绍,以及example相关的介绍, 发现有些地方看不懂比如对应的原理图,这个是为啥呢,因为没学过这个没办法再就是把一些位置以及其他方便进行了翻译,填充了对应的值, 但是有个大段不是很理解然后就去看多项式生成的原理,发现还可以,这段时间花的还挺多,不过挺值得然后就是去计算了,拿原始的数据一直没有计算对,尝试原创 2021-11-13 00:30:09 · 244 阅读 · 0 评论 -
C++多态虚函数表详解
本文关键词:C++ 多态 多继承 多重继承 虚函数表 虚函数指针 动态绑定概述:C++相对其他面向对象语言来说,之所以灵活、高效。很大程度的占比在于其多态技术和模板技术。C++虚函数表是支撑C++多态的重要技术,它是C++动态绑定技术的核心。本文章将着重图解虚函数表相关知识,在阅读本文前,博主已经默认你已经学习了C++多态的语法,并且通过代码实践过。一、多态起手式以及内存分布假设有一个基类ClassA,一个继承了该基类的派生类ClassB,并且基类中有虚函数,派生类实现了基类的虚函数。我们在代转载 2021-11-07 22:31:23 · 329 阅读 · 0 评论 -
构造函数思考
#include <iostream>using namespace std;class Complex{public: Complex(): m_real(0.0), m_image(0.0) {cout << 1 << endl;} Complex(double real, double image): m_real(real), m_image(image) {cout << 2 << endl;} Com.原创 2021-11-06 22:57:20 · 96 阅读 · 0 评论 -
函数返回引用
#include <iostream>using namespace std;int &plus10(int &r){ r += 10; return r;}int main(){ int m = 20; int k = plus10(m); // k的最终结果是引用,所以最后是40,如果不是引用,则是30 cout << m << endl; int r = p.原创 2021-11-06 20:43:33 · 560 阅读 · 0 评论 -
Abstract Factory 抽象工厂
动机(Motivation)在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时,由于需求的变化,往往存在更多系列对象的创建工作。模式定义提供一个接口,让该接口负责创建一系列“相关或者相互依赖的对象”,无需指定它们具体的类。结构要点总结如果没有应对“多系列对象构建”的需求变化,则没有必要使用Abstract Factory模式,这时候使用简单的工厂完全可以。 “系列对象”指的是在某一特定系列下的对象之间有相互依赖、或作用的关系。不同系列的对象之间不能相互依赖。 .原创 2021-10-17 21:59:48 · 62 阅读 · 0 评论 -
Factory Method工厂方法
动机(Motivation)在软件系统中,经常面临着创建对象的工作;由于需求的变化,需要创建的对象的具体类型经常变化。模式定义定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使得一个类的实例化延迟(目的:解耦,手段:虚函数)到子类。要点总结Factory Method模式用于隔离类对象的使用者和具体类型之间的耦合关系。面对一个经常变化的具体类型,紧耦合关系(new)会导致软件的脆弱。 Factory Method模式通过面向对象的手法,将所要创建的具体原创 2021-10-17 21:42:33 · 56 阅读 · 0 评论 -
Bridge 桥模式
动机(Motivation)由于某些类型的固有的实现逻辑,使得它们具有两个变化的维度,乃至多个纬度的变化。模式定义将抽象部分(业务功能)与实现部分(平台实现)分离,使它们都可以独立地变化。要点总结Bridge模式使用“对象间的组合关系”解耦了抽象和实现之间固有的绑定关系,使得抽象和实现可以沿着各自的维度来变化。所谓抽象和实现沿着各自纬度的变化,即“子类化”它们。 Bridge模式有时候类似于多继承方案,但是多继承方案往往违背单一职责原则(即一个类只有一个变化的原因),复用性比较差。Br原创 2021-10-17 20:32:07 · 139 阅读 · 0 评论 -
Observer 观察者模式
动机(Motivation)在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系” ——一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。模式定义定义对象间的一种一对多(变化)的依赖关系,以便当一个对象(Subject)的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。要点总结使用面向对象的抽象,Observer模式使得我们可以独立地改变目标与观察者,从而使二者之间的依赖关系达致松耦合。原创 2021-10-17 18:12:53 · 69 阅读 · 0 评论 -
Decorator 装饰模式
动机(Motivation)在某些情况下我们可能会“过度地使用继承来扩展对象的功能”,由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性;并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展功能的组合)会导致更多子类的膨胀。模式定义动态(组合)地给一个对象增加一些额外的职责。就增加功能而言,Decorator模式比生成子类(继承)更为灵活(消除重复代码 & 减少子类个数)。要点总结通过采用组合而非继承的手法, Decorator模式实现...原创 2021-10-17 17:33:18 · 83 阅读 · 0 评论 -
IO库
1 . IO类继承机制 标准库使我们能忽略这些不同类型的流之间的差异,这是通过继承机制来实现的.比如:类型ifstream和istringstream都继承自istream.我们就可以像使用istream对象一样来使用ifstream和istringstream对象.IO对象无拷贝或赋值ofstream out1,out2;out1 = out2; //错误:不能原创 2016-03-26 19:56:59 · 228 阅读 · 0 评论