C++
文章平均质量分 58
Wqh_lym
听外国人的歌想要去结婚,听自己人的歌却想要孤独一生。
展开
-
C++中的Static
在面向过程中静态全局变量#include <iostream>using namespace std;void fn(); //声明函数static int n; //声明静态全局变量int main(){ n = 20; //为n赋初值 printf("%d\n", n);//输出n的值 fn(); //调用fn函数}void fn(){ n++; ...原创 2018-04-10 13:32:50 · 194 阅读 · 0 评论 -
C++设计模式---简单工厂模式
简单工厂模式主要用于创建对象,新添加类时,不会影响以前的系统代码。核心思想是用一个工厂来根据输入的条件产生不同的类,根据不同类的virtual函数得到不同的结果。适用于不同情况创建不同的类时,客户端必须知道基类和工厂类,耦合性不好。#include <iostream>using namespace std; enum CTYPE { PA=1, PB }; //基类clas...原创 2018-04-07 13:56:31 · 171 阅读 · 0 评论 -
C++设计模式---装饰模式
动态地给一个对象添加一些额外的职责(不重要的功能,只是偶然一次要执行),就增加功能来说,装饰模式比生成子类更灵活,建造过程不稳定,按正确的顺序串联起来进行控制。当你想旧的类中添加新代码时,一般是为了添加核心职责或主要行为。而当需要加入的仅仅是一些特定情况下才会执行的特定的功能是(简单来说就是不是核心应用的功能)就会增加类的复杂度。装饰模式就是把要添加的附加功能分别放在单独的类中,并让这个类包含它要...原创 2018-04-09 19:59:09 · 178 阅读 · 0 评论 -
C++设计模式---策略模式
定义算法家族,分别封装起来,让他们之间可以相互替换,让算法变化,不会影响到用户。适合类中的成员以方法为主,算法经常变动,简化了单元测试(因为每个算法都有自己的类),可以通过自己的借口单独测试。策略模式和简单工厂模式基本相同,但简单工厂模式只能解决对象创建问题,对于经常变动的算法应该使用策略模式。//策略模式class Arithmetic{public: virtual void Repl...原创 2018-04-09 19:09:29 · 212 阅读 · 0 评论 -
设计模式原则
1:单一职责原则就一个类而言,应该仅有一个引起它变化的原则。如果一个类承担的职责过多,就等于把这些耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其它职责能力,这种耦合会导致脆弱的设计,当变化发生时,设计会遭到意想不到的破坏。如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责。2:开放--封闭原则软件实体可以扩展,但是不可以修改,即对于扩展是开放的,对于修改是封闭的。而...原创 2018-04-09 00:04:11 · 154 阅读 · 0 评论 -
笔记(一)初识C++
输入输出#include int main(){ std::cout << "Enter two number:"<< std::endl;原创 2017-11-03 17:53:03 · 290 阅读 · 0 评论 -
在c++11中讨论nullptr和NULL
C++ 11 nullptr关键字熟悉C++的童鞋都知道,为了避免“野指针”(即指针在首次使用之前没有进行初始化)的出现,我们声明一个指针后最好马上对其进行初始化操作。如果暂时不明确该指针指向哪个变量,则需要赋予NULL值。除了NULL之外,C++11新标准中又引入了nullptr来声明一个“空指针”,这样,我们就有下面三种方法来获取一个“空指针”:如下:int *p1转载 2017-11-03 23:42:45 · 382 阅读 · 0 评论 -
C++设计模式---工厂方法模式
修正了简单工厂模式中不遵守开放-封闭原则。工厂方法模式把选择判断移到了客户端去实现,如果想添加新功能就不用修改原来的类,直接修改客户端就好。 //工厂方法模式 class Product { public: Product() {} virtual ~Product() {} public: virtual void operation() = 0; }; //产品A c...原创 2018-04-07 14:46:49 · 191 阅读 · 0 评论 -
C++设计模式---抽象工厂模式
定义了一个创建一系列相关或相互依赖的接口,而无需制定它们的具体类。用于交换产品系列,产品的具体类名被具体工厂实现分离简单来说就是,工厂还是两个,可以生产A系列的产品,B系列的产品//抽象工厂模式class Product{public: Product() {} virtual ~Product() {}public: virtual void operation() = 0;};...原创 2018-04-07 15:17:20 · 455 阅读 · 0 评论