- 博客(13)
- 收藏
- 关注
原创 GeekBand笔记-《C++面向对象高级编程(上)》 第二周
C++ Big Three首先是默认构造函数(default constructor) 的概念,默认构造函数是没有参数或者全部参数都有默认值。不论这个构造函数是 user-defined 还是编译器 auto-generated。 C++ Annotated Reference Manual 中告诉我们 :" default constructor 是在需要的时候被编译器产生出来". cla
2017-10-25 20:31:56
350
原创 GeekBand笔记-《C++面向对象高级编程(上)》 第三周
面向对象编程(Object Oriented Progamming)Inheritance (继承)继承表示一种 ‘is-a' 的关系。有基类(base class) 和 派生类(derived class)。 继承分为单个继承和多重继承,同时继承的访问权限也有public,private,protected(默认是private)。class Shape{public: Sha
2017-10-25 20:30:37
299
原创 GeekBand笔记-《C++面向对象高级编程(上)》 第一周
定义类–>私有数据–>构造函数1、malloc 申请的内存大小必须一次性确定,不然自动执行指针++。会出现指针指向未知的区域;int main(){ Date* dateList = NULL; int size = 0; int* data = new int[3]; //int *data = (int *)malloc(sizeof(int*) * 3);
2017-10-25 20:27:09
343
原创 GeekBand笔记-《STL与泛型编程 》 第四周
动机由于某些类型的固有的实现逻辑,使得它们具有两个变化的维度,乃至多个维度的变化那么该如何应对这种多维度的变化?如何利用面向对象技术使得类型可以轻松沿着两个乃至多个方向变化?而不引入额外的复杂度。桥模式定义将抽象部分(业务功能)与实现部分(平台实现)分离,使得它们都可以独立地变化。让我们直接上代码,分析一下没有使用桥模式下的代码如何难以独立变化。class Messager{publ
2017-10-25 20:08:45
272
原创 GeekBand笔记-《STL与泛型编程 》 第三周
变易算法变易算法是指那些改变容器中对象的操作。具体包括:copy template<class _InIt, class _OutIt> inline _OutIt copy(_InIt _First, _InIt _Last, _OutIt _Desc) // 将对象从 [_First, _Last) 拷贝至 [), 其中:_DestLast = _Dest+(_Last - _First).
2017-10-25 20:03:21
289
原创 GeekBand笔记-《STL与泛型编程 》 第二周
STL 整体结构STL 主要是有六大主要的部件构成。容器 分配器 算法 迭代器 适配器 仿函数```#include<vector>#include<algorithm>#include<functional>#include<iostream>using namespace std;int main(){ int ia[6] = { 1, 2, 3}; vect
2017-10-24 22:21:05
282
原创 GeekBand笔记-《STL与泛型编程 》 第一周
泛型编程模版介绍模版是C++的一种特性,允许函数或类通过泛型的形式表现和运行。模版的类型有 类模版,函数模版, 成员模版等。模版的实例化是从模版构建出一个真正函数或类的过程。模版被编译了两次。没有被实例化之前,检查模版代码本身是否有语法错误,在实例化期间,检查对模版代码的调用是否合法。函数模版是参数化的一族函数。通过模版函数,可以定义一系列函数。这些函数都是基于同一套代码,但是可以作用在不同型别的参
2017-10-24 22:06:18
308
原创 GeekBand笔记-《C++面向对象高级编程(下)》 第二周
本周主要是讲述了C++的对象模型,通过对于对象模型的深入了解,我们可以知道虚函数,多态,this指针的了解。 以及部分 new,delete的部分详细介绍。Object ModelC++的对象模型是C++对象最重要的部分之一,且包含的内容非常的丰富.C++中的class是由data member和function member组成的。对象模型的内存布局和data member和function
2017-10-24 22:00:14
384
原创 GeekBand笔记-《C++面向对象高级编程(下)》 第一周
面向对象的下篇侧重于C++的技术主线-泛型编程(Generic Programming)和面向对象编程(Object-Oriented Programming)。然后通过深入探索C++继承关系的对象模型,描述底层this指针,vptr(虚函数),vtbl(虚表),virtual mechanism(虚机制)以及 virtual function(虚函数)形成 polymorphism (多态)的成
2017-10-24 21:57:56
392
原创 GeekBand笔记-《C++设计模式》 第三周
23种设计模式“对象性能”模式面向对象很好的解决了“抽象”的问题,但是必不可免地要付出一定的代价。对于通常情况来讲,面向对象的成本大都可以忽略不计。但是某些情况,面向对象所带来的成本必须谨慎处理。典型模式SingletonFlyweight14.Singleton单件模式模式定义保证一个
2017-10-18 22:21:31
334
原创 GeekBand笔记-《C++设计模式》第二周
针对DrawingSystem中的基类Shape和各个子类Line、Rec、Circle。为支持更多的形状子类,请使用某种模式来支持灵活地创建它们。使用松耦合面向对象设计方法和思想,可使用伪码表示设计。 课程中提到了四种模式,“工厂方法”、“抽象工厂”、“原型模式”、“构建器”模式。最后聚焦在了“工厂方法”和“抽象工厂”这两种方法,那么第一个问题就是“工厂方法”、“抽象工厂”区别与联系?
2017-10-10 22:13:00
468
原创 GeekBand笔记-《C++设计模式》第一周
一.设计模式简介什么是设计模式呢?“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。”而我们就是要以面向对象为基础,主要学习掌握“好的面向对象设计”。因此我们必须将向下的底层思维和向上的抽象思维联系起来,把握机器底层从微观理解对象构造,将我们周围世界抽象为程序代码。向下深入理解三大面向对象机制:封装(隐藏内部实现)
2017-09-28 22:39:23
299
原创 GeekBand笔记-《STL与泛型编程 》 第五周
1.一个万用的hash functiona.研究目的:为以hash table为底层的容器中所放置的元素写一个hash function。b. hash function设计原则:产生的hash function尽可能减少冲突,使元素能够不重复。一般思路:利用基本数字类型(整数、浮点数、字符等)本身的hash function,将其简单的相加。问题:元素容易冲突,每个篮子挂的元
2017-09-21 22:23:11
303
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人