c++语言
KjfureOne
熟悉ARM平台,x86平台,下linux驱动开发,流行单片机裸驱开发,以及移动开发,有五年工作经验。
展开
-
c++学习框架
学习框图原创 2016-09-19 21:28:36 · 392 阅读 · 0 评论 -
linux信号量
API#include int sem_init(sem_t *sem, int pshared, unsigned int value);int sem_destroy(sem_t *sem);int sem_wait(sem_t *sem);int sem_trywait(sem_t *sem);int sem_timedwait(sem_t *sem, const原创 2017-06-16 17:05:13 · 424 阅读 · 0 评论 -
c++:explicit 抑制构造函数隐式转换
按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p ); // 用C风格的字符串p作为初始化值//…}String s1 = “hello”; //OK 隐式转换,等价于String s1 = String(“hello”转载 2017-06-01 12:03:35 · 771 阅读 · 0 评论 -
C++设计模式之工厂模式
工厂模式主要用于创建对象。新添加类时,不会影响以前的系统代码。核心思想是用一个工厂来根据输入的条件产生不同的类,然后根据不同类的virtual函数得到不同的结果。#include<stdio.h>#include<string.h>class Oper{ double a; double b;public: void SetA(double _x) {a = _x;}原创 2016-10-08 13:52:11 · 245 阅读 · 0 评论 -
C++多态基础
C++多态性#include<stdio.h>class Addxy{ int _x; int _y;public: Addxy(int x = 0,int y = 0):_x(x),_y(y){};virtual int add() //该函数与对象绑定 { printf("--Addxy----%d----\r\n", (_x+_y));原创 2016-09-30 16:46:19 · 352 阅读 · 0 评论 -
c++继承基础
c++继承基础#include<stdio.h>class Father{ int a;protected: int b;public: Father(int x=1,int y =2):a(x),b(y){} int add() { return this->a+this->b; }};class Child : public原创 2016-09-29 14:55:43 · 274 阅读 · 0 评论 -
C++拷贝构造
C++拷贝构造//1.对象本体和对象实体的区别(成员变量包含指针),类本身与对象存储大小不一样#include<stdio.h>#include<string.h>#include<stdlib.h>class Copy{ char * arr;public: //构造函数 Copy(char *arrp = "no str"):arr(arrp) {原创 2016-09-29 14:20:10 · 399 阅读 · 0 评论 -
C++构造函数基础
构造函数基础//构造函数#include<stdio.h>class PPoint{int x;int y;public: PPoint(int a = 10,int b =5):x(a),y(b) { printf("x=%d,y=%d\r\n",x,y); }};int main(){ //一般定义 PPoint a(1,3);原创 2016-09-29 12:11:39 · 305 阅读 · 0 评论 -
c++设计模式之工厂方法模式
工厂方法模式1.简单工厂模式,支持扩展,也对修改开放了,违背了开放-封闭原则。 2.定义一个用于创建对象的接口,让子类决定实例化哪一个类,客户端需要决定实例化哪一个工厂来实现产品类。#include<stdio.h>#include<string.h>class Oper{ double a; double b;public: void SetA(double _x)原创 2016-10-13 14:28:15 · 252 阅读 · 0 评论 -
c++设计模式之代理模式
代理模式访问对象时引入一定程度的间接性,因为这种间接性,可以附加多种用途。#include<stdio.h>#include<string.h>class Interface{public: virtual void Result()=0;};class RealSubject:public Interface{public: void Result() {原创 2016-10-13 10:54:59 · 416 阅读 · 0 评论 -
C++设计模式开放封闭原则
原则 软件实体可以扩展,但是不可修改。即对于扩展是开放的,对于修改是封闭的。面对需求,对程序的改动是通过增加代码来完成的,而不是改动现有的代码。 方法: 当变化发生时,我们就创建抽象来隔离以后发生同类的变化。 开放-封闭原则是面向对象的核心所在。开发人员应该对程序中呈现出频繁变化的那部分做出抽象,拒绝对任何部分都刻意抽象及不成熟的抽象。原创 2016-10-09 15:02:08 · 780 阅读 · 0 评论 -
C++设计模式之策略模式
定义算法家族,分别封装起来,让它们之间可以互相替换,让算法变化,不会影响到用户 好处:适合类中的成员以方法为主,算法经常变动;简化了单元测试(因为每个算法都有自己的类,可以通过自己的接口单独测试。 策略模式和简单工厂基本相同,但简单工厂模式只能解决对象创建问题,对于经常变动的算法应使用策略模式。 BUG:客户端要做出判断 ,使用简单工厂模式可以降低耦合#include<stdio.原创 2016-10-09 14:49:06 · 272 阅读 · 0 评论 -
linux Mutex
一、互斥锁1. 初始化:在Linux下, 线程的互斥量数据类型是pthread_mutex_t. 在使用前, 要对它进行初始化: 对于静态分配的互斥量, 可以把它设置为PTHREAD_MUTEX_INITIALIZER, 或者调用pthread_mutex_init. 对于动态分配的互斥量, 在申请内存(malloc)之后, 通过pthread_mutex_init进行初始转载 2017-06-07 10:16:44 · 1111 阅读 · 0 评论