C++ Blog
文章平均质量分 79
Xavier丶Zeng
Remember to look up at the stars and not down at your feet. Be curious and however life may seem, there is always something you can do and succeed at.
展开
-
C++中public、protected、private继承的区别
public、protected、private继承的区别写在前面在学习C++时经常会混淆public、protected、private在继承中的概念,于是写在此博客加深理解。 首先记住以下三点: - 用户代码(类外)只能访问public成员变量和public成员函数。 - 子类(继承类)能访问基类的public和protected成员(包括变量和函数),但不能访问基类的pri...原创 2018-06-19 23:20:58 · 12038 阅读 · 2 评论 -
HeadFirst设计模式之策略模式(C++实现)
设计模式入门1. 设计原则 找到应用中可能变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。 把会变化的部分取出并封装起来,以便以后可以轻易地改动或扩充此部分,而不影响不需要变化的其他部分。针对接口(Interface)编程,而不是针对实现(implenments)编程。多用组合,少用继承。 如同书上所说,鸭子的行为不是(IS-A)继承extends而来的,而是通...原创 2018-06-29 02:14:49 · 406 阅读 · 0 评论 -
HeadFirst设计模式之观察者模式(C++实现)
观察则模式1. 面向对象原则封装变化:找到应用中可能变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。 把会变化的部分取出并封装起来,以便以后可以轻易地改动或扩充此部分,而不影响不需要变化的其他部分。针对接口(Interface)编程,而不是针对实现(implenments)编程。多用组合,少用继承。如同书上所说,鸭子的行为不是(IS-A)继承extends而...原创 2018-07-04 20:57:28 · 331 阅读 · 0 评论 -
HeadFirst设计模式之装饰者模式(C++实现)
装饰者模式1. 面向对象原则封装变化:找到应用中可能变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。 把会变化的部分取出并封装起来,以便以后可以轻易地改动或扩充此部分,而不影响不需要变化的其他部分。针对接口(Interface)编程,而不是针对实现(implenments)编程。多用组合,少用继承。如同书上所说,鸭子的行为不是(IS-A)继承extends而...原创 2018-07-15 22:19:06 · 487 阅读 · 0 评论 -
内存对齐
对齐规则1 首先struct和class中的各类型数据成员的位置偏移量offset要内存对齐,规则是偏移量offset必须是min(#paragma pack(n), 该数据成员所占字节数)的倍数2 其次,struct和class本身也要内存对齐,struct和class本身所占字节数必须是min(#paragma pack(n), 类内最长数据成员所占字节数)的倍数例子#includ...原创 2019-03-31 21:26:46 · 175 阅读 · 0 评论 -
排序算法总结
排序算法1 插入排序1.1 直接插入排序最好情况下,O(n);最坏情况下O(n^2)原理:将一个长度为n的数组分为两个集合:一个已排序集合和一个待排序集合,开始时已排序集合长度为空(或者直接将待排序集合的第一张放入到已排序集合中),然后从待排序集合中拿出一个数字,和已排序集合中的数组进行比较,插入合适的位置。(可以想象为两堆扑克牌)#include<vector>us...原创 2019-03-31 21:34:32 · 306 阅读 · 0 评论