C++
2359_God
你以为Android只有APP么,致敬Android系统工程师,我追求的是Android全栈
展开
-
c++函数指针和多态的关系,与Java的联系
本人之前专门做android开发和asp.net开发,算是对面向对象的语言有所了解,面向对象语言难点在于上层的业务逻辑和框架设计部分,在学习c++的过程算是知道Java是由c++演变而来的,之前在做java编译器其实感觉像是透明的,现在学习c++发现一切都要按照编译器来思考原创 2015-06-30 13:27:13 · 1133 阅读 · 0 评论 -
C++ forward_list,Vertor,Initializer_list用法知识点
C++ forward_list,Vertor,Initializer_list用法知识点原创 2017-03-22 13:50:57 · 521 阅读 · 0 评论 -
C++类成员函数指针,二级类成员函数指针知识点
C++类成员函数指针,二级类成员函数指针知识点原创 2017-04-01 10:36:53 · 396 阅读 · 0 评论 -
C++拷贝构造函数的深拷贝与浅拷贝知识点
#define _CRT_SECURE_NO_DEPRECATE#include using namespace std;class MyString{public: char* pstr; int length; MyString(const char* str){ this->length = strlen(str) + 1; this->pstr = new原创 2017-04-01 11:43:56 · 620 阅读 · 0 评论 -
C++ allocators将构造函数,析构函数与分配内存解耦
allocators分配器的作用就是将分配内存与构造函数,析构函数脱离,提高运行效率减少成本。new和delete操作符把内存空间的分配回收与对象的构建销毁紧紧关联在一起。#include #include #include using namespace std;class Student{private: int a;public: Student(){ cou原创 2017-03-26 21:48:41 · 1267 阅读 · 0 评论 -
C++数据类型转换知识点
#include using namespace std;class Father{public : int time; virtual void run(){ cout<< "Fatner is running" <<endl; }};class Son : public Father{public: void run(){ cout << "Son i原创 2017-03-19 13:02:06 · 430 阅读 · 0 评论 -
C++类模板与函数模板 & 类模板继承
函数模板与类模板其实就是Java里面的泛型编程,只作为抽象的模板,使用时需要指定具体的类型才能实例下面就看类模板最典型的案列就能明白了:#include #include #include using namespace std;//类模板templateclass Myarray{public: T* p; Myarray(const initializer_l原创 2017-04-13 11:39:22 · 1752 阅读 · 0 评论 -
C++ std::move原理&右值引用存在的必要性
在学习C++的过程中一直搞不懂为什么要存在右值引用,将左值引用变为右值引用个人认为就是减少拷贝构造,赋值重载过程内存开辟拷贝的次数,提高速度我们现在看一段代码:#include #include using namespace std;class Student{ friend class Teacher;private: char * pStart原创 2017-05-10 22:43:43 · 1863 阅读 · 2 评论 -
C++ Boost signal2信号/插槽知识点
signals2基于Boost的另一个库signals,实现了线程安全的观察者模式。在signals2中,观察者模式被称为信号/插槽(signals and slots),它是一种函数回调机制,一个信号关联了多个插槽,当信号发出时,所有关联它的插槽都会被调用。下面就通过小案列来实现signal的使用#include #include #include #include u原创 2017-05-14 12:39:13 · 9231 阅读 · 0 评论 -
C++类模板中使用异常知识点
这一篇主要记录了类模板中使用异常类的知识点类模板中使用异常类的时候,异常类同样可以进行模板化下面通过这个小案例来明白这个知识点#include #include using namespace std;class Error :public exception{};template class Myerror{public: void showError()原创 2017-05-06 17:01:03 · 1201 阅读 · 0 评论 -
C++ 智能指针shared_ptr模板实现原理
C++ 智能指针shared_ptr通过引用计数来管理指向的对象,不需要人工释放这篇博文主要是讲解了智能指针的实现原理,怎么实现引用计数#include using namespace std;namespace shao_smart_point{ //智能指针内部引用计数类实现 class smart_cout{ private: int use_count; pu原创 2017-05-07 15:07:43 · 1162 阅读 · 0 评论 -
C++模板实现list,迭代器
这篇博文主要是帮助去了解STL List与迭代器 算法实现的原理让我们更明白STL容器的封装 迭代器与智能指针的关系 算法的封装我们主要是通过链表的实现下面看一下模板实现紫的链表节点元素的封装:#pragma oncetemplate class Node{public: T data; Node* next; Node(); ~Node();原创 2017-05-16 17:58:05 · 761 阅读 · 0 评论 -
C++函数包装器与引用包装器,函数绑定器的使用
C++函数包装器与引用包装器的使用原创 2017-03-16 15:03:52 · 1976 阅读 · 0 评论 -
C++ new delete new[] delete[]重载实现
C++ new delete new[] delete[]重载实现原创 2017-03-07 11:23:59 · 1197 阅读 · 0 评论 -
Linux下C/C++ 目录和文件操作
学习Linux环境编程 读取文件和目录是很重要的环节,因为Linux环境下 "一切皆文件" 首先得明白文件描述符的概念,每一个进程都会默认打开标准输入,标准输出,标准出错 下面这个案列很好的解释文件描述符的概念 #include #include #include #include #include #include #include #include in原创 2015-09-10 13:50:25 · 4840 阅读 · 0 评论 -
Gcc与Make编译C/C++学习
在linux环境下 编译C/C++文件需要使用gcc或者make的编译软件进行编译 编译有三个过程:预编译---->编译----->链接 预编译的过程就是将c/c++文件的头文件包含到代码的过程 编译就是将文件变成机器代码 链接就是将代码中使用的各个函数库的机器代码进行链接变成可执行文件 1:首先学习预编译 gcc -o out.c -E src.c原创 2015-08-20 17:37:53 · 1300 阅读 · 0 评论 -
Linux进程通信(无名管道,有名管道,共享内存)的实现
Linux进程的通信有很多种方式,比如无名管道,有名管道,共享内存,Android进程通信采用的确是Binder机制~~~ 在学习进程通信之前先学习一下System,Fork,Execive的机制,System调用的是另一个进程跟自己毫无关系 用的比较少。Fork创建的是父子进程,父进程的内存会被复制到字进程的内存空间区别就是PID的不同。Execive调用的进程就会保留内存空间但是执原创 2015-09-17 16:11:25 · 1326 阅读 · 0 评论 -
Linux共享库so文件创建与使用
Linux共享库so文件类似于Windows的dll文件,首先讲一下so文件的创建过程 将Test.c文件编译成libtest.so文件,test.c文件内容如下: int max(int a,int b){ return a>b?a:b;}int add(int a,int b){ return a + b;}~原创 2015-09-16 19:09:39 · 792 阅读 · 0 评论 -
Linux下多线程实现以及线程同步
今天学习一下Linux下多线程的开发,这在Android开发中很常见,也学习一下线程同步的实现。第一步就来创建线程的实现 #include #include #include #include #include #include #include #include #include #include #include #include #include #inc原创 2015-09-22 10:49:22 · 680 阅读 · 0 评论 -
Linux下Service守护进程开发和Shell脚本控制Daemon
在我开发Android的过程中遇到Service组件简单的将就是不需要界面的背后进程,默默执行任务。现在我们学习一下Linux下守护进程Service是怎么实现的,也同时学习一下通过shell脚本来控制进程的开关。 守护进程实现有着默认的思路fork父子进程,关闭父进程,将子进程进行与控制台脱离的操作,我这边的守护进程demo实现的是通过信号来控制守护进程的输出。首先看一下代码:原创 2015-10-26 17:42:00 · 3332 阅读 · 0 评论 -
Linux下Socket的实现(C++)
下面主要学习Linux下实现TCP通信的Socket 主要学些Socket客户端与服务端的实现原理采用多线程的技术实现收发消息 对于实现代码采用了注释,秉着“拿来主义”的精神来看一下效果吧 /* ============================================================================ Name原创 2015-10-27 17:48:21 · 992 阅读 · 0 评论 -
C++之Qt编程初级
好久没有时间更新博客了,主要学习了C++面向对象编程的思想运用到Qt编程中去,初级水平练练手,开发环境是Linux+Mysql+QtCreator 小作品可以理解为基于QT框架写的数据库连接,Qt开发等内容,让我们能够借助Qt的方便快捷迅速理解C++编程,由于本人长期接受Android Java的开发习惯,导致一开始很不适应,慢慢学习的过程中你会发现C++给人编程的感觉就是每一步都要很清楚原创 2016-03-06 23:20:04 · 665 阅读 · 0 评论 -
C实现memomove,memocpy,memoicmp,atoi,itoa函数
memomove实现 #include #include #include #include void *myMemmove(void *destination, const void *source, unsigned int size) { char *pSource = (char *) malloc(size); memcpy(pSource, (char原创 2016-11-21 12:39:32 · 343 阅读 · 0 评论 -
深入理解C实现文本文件的加密解密,读取长度操作
首先从获取文本文件长度下手: 获取文本文件长度比较这两种办法的差异:原创 2016-12-29 15:09:06 · 2194 阅读 · 0 评论 -
C++引用数组,函数指针,函数指针数组,结构体数组等学习
这篇博文主要介绍了如何在C++11 VS2013编译器上去实现各种引用,避免因为编译器不同造成的语法困难1:引用数组,二维数组 ,数组指针#include using namespace std;void main1(){ /*int a[3]{1,2,3}; int aa[2][3]{1,2,3,4,5,6}; int*pa(new int[3]{1,2,3});原创 2017-01-24 15:26:54 · 1102 阅读 · 0 评论 -
C++ Boost::bind函数包装器使用,boost::bind与伪函数的绑定使用
在我们使用stl的 一些算法的时候,比如find_if,for_each等,需要使用仿函数,如果仿函数有2个参数,但是算法需要一个一元的仿函数的时候,我们可以使用适配器,boost库中boost::bind就帮助我们定义了函数适配器 下面主要讲了boost::bind如何适配函数,成员函数,Lambada函数,伪函数 #include #include #in原创 2017-04-25 22:43:53 · 5865 阅读 · 0 评论