C++
understand125
这个作者很懒,什么都没留下…
展开
-
int类型表示无穷大的值
int类型的取值范围为 0xffffffff(-2,147,483,648) - 0x7fffffff(2,147,483,647)尽管0x7fffffff为int类型最大值,但一般不使用该值表示无穷大值;因为0x7fffffff不能满足“无穷大+有穷数 = 无穷大”,它会变成一个很小的负数。0x3f3f3f3f的十进制为1061109567,也是109的级别,和0x7fffffff在一个数量级,而且一般情况下,数据都是小于109的,0x3f3f3f3f加上一个小于109的数时,不会溢出,因此常用0x3原创 2023-06-17 18:21:22 · 628 阅读 · 0 评论 -
抽象工厂模式 - Abstract Factory
定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。举例:学校里需要制造一年级的语文书、数学书,二年级的语文书、数学书。源码地址...原创 2019-06-28 21:15:23 · 115 阅读 · 0 评论 -
原型模式 - Prototype
定义: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。举例:学校要制造学生档案,同一个班的同学,大部分信息是相同的,可以先制作一份,填好相同信息,然后以其为原型,复制多份,再填写同学们不同的信息;这要比一份一份的填写,简便很多类图注:这里为了约束子类,将其抽象为clone函数;若无子类,实现拷贝构造即可。客户端#include "StudentInfo.hpp"i...原创 2019-07-07 17:55:51 · 123 阅读 · 0 评论 -
工厂方法 - FactoryMethod
定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。举例:学校使用得力品牌的笔。源码地址原创 2019-07-07 16:35:07 · 119 阅读 · 0 评论 -
建造者模式 - Builder
定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。举例:学校需要制造桌子,桌子高低大小不等源码地址原创 2019-07-07 16:20:57 · 157 阅读 · 0 评论 -
开放封闭原则-Open Closeed Principle-OCP
定义: 对软件实体(类、模块、函数),扩展可以开放,修改应该封闭。优点:可维护可扩展可复用灵活性高举例:学校里有一名老师教语文// Teacher.hclass Teacher{public: void teach();};// Teacher.cpp#include "Teacher.h"#include <iostream>void Teac...原创 2019-06-16 20:40:07 · 273 阅读 · 0 评论 -
迪米特原则 - Least Knowledge Principle - LKP
定义: 一个类应该对其他类保持最少的了解。释义: 只有直接的朋友通信。直接的朋友:出现在成员变量,方法参数,方法返回值中的类。出现在局部变量中的类则不是直接朋友。举例:如校长想知道学校全体同学的名字,只需与各班主任沟通就行,无需与所有同学沟通学生类#include <string>class Student{public: Student(std::string na...原创 2019-05-04 21:38:52 · 183 阅读 · 0 评论 -
接口隔离原则 - Interface Segregation Principle - ISP
定义: 客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。释义:类依赖的接口,其含有的方法都是自己依赖的。使用时,注意以下几点:接口尽量小,但是要有限度。对接口进行细化可以提高程序设计灵活性是不挣的事实,但是如果过小,则会造成接口数量过多,使设计复杂化。所以一定要适度。为依赖接口的类定制服务,只暴露给调用的类它需要的方法,它不需要的方法则隐藏起来。只有专注地为...原创 2019-05-04 12:08:53 · 134 阅读 · 0 评论 -
依赖倒置原则 - Dependence Inversion Principle - DIP
定义:高层模块不应该以来低层模块,两个都应该依赖抽象抽象不应该依赖细节,细节应该依赖抽象核心思想:针对接口编程,不要对实现编程使用时,应遵循以下3点低层模块或高层模块尽量都要有抽象类,或者两者都有变量的声明类型尽量是抽象类使用继承时遵循里式替换原则举例:语文老师教语文可以有多种途径,如课堂上面对面、在线视频等教学方式接口,所有的教学方式实现该接口#include <...原创 2019-05-03 23:22:40 · 151 阅读 · 0 评论 -
里氏替换原则 - Liskov Substitution Principle - LSP
定义:子类可以扩展父类的功能,但不能改变父类原有的功能。有四层含义:子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法子类中可以增加自己特有的方法当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格举例:老师类已经含有了getName函数,而语文老师类重新定义了g...原创 2019-05-03 20:57:04 · 261 阅读 · 0 评论 -
面向对象设计原则及设计模式
面向对象设计原则简介单一职责原则里式替换原则依赖倒置原则接口隔离原则迪米特原则开放关闭原则设计模式创建型模式抽象工厂模式建造者模式工厂方法模式原型模式单例模式结构型模式适配器模式桥接模式组合模式装饰模式外观模式享元模式代理模式行为模式职责链模式命令模式解释器模式迭代器模式中介者模式备忘录模式观察者模式状态模式策略模式模板方法模式访...原创 2019-02-11 21:34:33 · 148 阅读 · 0 评论 -
单一职责原则-Single Responsibility Principle-SRP
定义:就一个类而言,应该仅有一个引起其变化的原因。问题:类T负责两个不同的职责P1, P2。原创 2019-02-11 22:02:53 · 156 阅读 · 0 评论 -
单例模式(Singleton)
解释:保证一个类仅有一个实例,并提供一个访问它的全局访问点。举例: 一个班里只能有一个班主任,无论何时找班主任,都指向同一个人。班主任类HeadTeacher.h#pragma once// 班主任类class HeadTeacher{public: ~HeadTeacher(); // 访问唯一实例的接口 static HeadTeacher* getInstance()...原创 2019-05-02 14:53:26 · 150 阅读 · 0 评论