关闭

设计模式简单理解

一、工厂模式:相当于...
阅读(532) 评论(0)

装饰者模式

// DecorateModel.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include using namespace std; /* *装饰者模式:子类 B继承父类A,并在父类提供的接口上调用父类的接口函数。 *重点在于,子类B有一个父类A的对象。这样类B的子类则可以根据具体传进来的子类对象, *决定调用哪个类的接口...
阅读(654) 评论(0)

设计模式基本原则

一、单一职责原则:一个类,只有一个引起它变化的原因。本人理解就是,一个类只做一件事。不然耦合度就会相当高。 二、开放-封闭原则:对扩展开放,对修改封闭。因为软件的需求可能随时发生变化,所以设计类的时候应该尽量考虑到各种变化,并提供优秀的扩展性。一旦需求发生变化后, 不需要修改原来的代码,只需要增加新的代码就可以了。 三、依赖倒置原则:就是要依赖抽象,不依赖具体。就像电脑的接口一样,就比如US...
阅读(671) 评论(0)

策略模式

经过一个礼拜的休息,重新开始设计模式的学习。 今天学习的是策略模式,策略模式运用的就是面向对象的”多态思想“,首先定义一个策略基类,并定义所有的子类需要的接口,然后在基类的基础之下定义具体的策略类。 再定义一个上下文(context)类,这个类中只出现策略基类。运用基类的策略基类的指针来指向他的子类,并根据不同策略更改指向的子类。这样就可以选择具体的策略了。 从而实现新增加一种策略后只要在c...
阅读(693) 评论(0)

工厂模式

今天看完设计模式的第一节,工厂模式。现在将源代码写下,记录每一个脚印。 工厂模式:用一个工厂类管理其他类。这样代码的灵活性更强。 #include #include #include using namespace std; //计算类的基类,所有新计算方式都继承本类,可以让程序灵活性更强。 class Calculate { public: Calculate(){}...
阅读(549) 评论(0)

typename的两个作用

C++中,typename的作用有两个: 1.模板中用于引入一个模板参数 2.当访问一个类或结构体中的自定义类型的时候,用typename修饰,防止语法歧义。 考虑以下代码: template void foo(const T& t) { // 声明一个指向某个类型为T::bar的对象的指针 T::bar* p; } struct StructWithBarAsType { typed...
阅读(614) 评论(0)

VS2010快捷键大全

VS2010版快捷键 Ctrl+E,D ----格式化全部代码  Ctrl+E,F ----格式化选中的代码  CTRL + SHIFT + B生成解决方案  CTRL + F7 生成编译  CTRL + O 打开文件  CTRL + SHIFT + O打开项目  CTRL + SHIFT + C显示类视图窗口  F4 显示属性窗口  SHIFT + F4显示项目属性窗口  C...
阅读(735) 评论(0)

C++迭代器类型

STL 主要是由 containers(容器),iterators(迭代器)和 algorithms(算法)的 templates(模板)构成的.        对应于它们所支持的操作,共有五种 iterators(迭代器)。            input         output               \            /...
阅读(679) 评论(0)

allocator类

allocator类就像C中的malloca函数,却不像是C中的new关键字,因为new关键字和allocator做的事情不同: 1.allocator只是分配内存 2.new关键字先分配对象,再构造一个对象。 所以说,allocator使得内存分配和创建对象分隔开来了。 用allocator类一般需要经过以下几步: 1.调用allocator开辟一块内存。 2.调用construct...
阅读(1001) 评论(1)

顺序容器list、vector、deque的优劣

list容器的内存不是连续的,相当于链表,这样就可以理解他的特点了: 1.可以很方便的对容器中的任意位置进行删除和添加 2.因为他的内存分配不是连续的,所以如果要随机访问一个元素,必须从头开始遍历,知道找到合适的元素, 所以随机访问一个list容器代价会比较大。 vector容器的内存是连续的,相当于数组(本质上他就是数组),所以我们也可以知道他有哪些特点: 1.可以很方便的进行...
阅读(1046) 评论(1)

STL算法大全

STL算法部分主要由头文件,,组成。要使用 STL中的算法函数必须包含头文件,对于数值算法须包含,中则定义了一些模板类,用来声明函数对象。     STL中算法大致分为四类:         1、非可变序列算法:指不直接修改其所操作的容器内容的算法。         2、可变序列算法:指可以修改它们所操作的容器内容的算法。         3、排序算法:包括对序列进行排序和合并的算法、搜索...
阅读(1135) 评论(0)

New Features in C++11 学习

一、for循环: 1.举例: vector ve = {0,1,2,3,4,5,6,7,8,9,}; for( auto &r : ve) r *= 2; 2.相当于: for(auto beg = ve.begin(),end = ve.end();beg != end;++beg) { auto &r = (*beg); r *= 2; } 二、Lambda...
阅读(785) 评论(0)

STL算法学习

一、accumulate: 1.功能:该算法是对容器中指定范围的元素进行相加。 2.举例: vector VeTemp; VeTemp.push_back("hello"); VeTemp.push_back("world"); string temp = "huang"; string sum = ::accumulate(VeTemp.begin(),VeTemp.end(...
阅读(704) 评论(0)

在Qt与vs2010下字符串嵌入变量的方法

通过做了两个项目,都是与数据库有关的。 在写sql语句的时候都要将变量嵌入到string类型的变量中。 现在将方法解释如下: 1.Qt下:例如:int FriendID = 1; string SQLSelect = "select friend_name from tb_friend where friend_id = '+FriendID+'"; 2.vs2010下例如: int Frien...
阅读(890) 评论(0)

一个简单的关于函数指针的实例

请写出一个返回类型为 void (*)(int *,int);参数为一个int ,函数名称为ff   的函数。 分析:首先我们知道 int (*cmpFun)(const int& a,const int& b)  这句话代表的意思是 将cmpFun声明为 指向 int (const int& a,const int& b)  类型的指针。 所以我们容易得出,以上的函数写法是: void...
阅读(713) 评论(0)
106条 共8页首页 上一页 ... 6 7 8 下一页 尾页
    个人资料
    • 访问:115166次
    • 积分:2143
    • 等级:
    • 排名:第18879名
    • 原创:94篇
    • 转载:12篇
    • 译文:0篇
    • 评论:11条
    最新评论