C++学习笔记
文章平均质量分 60
DaveLee001
科学付出,才能高效
展开
-
make常见错误
转载于http://www.linuxsir.org/main/doc/gnumake/GNUmake_v3.80-zh_CN_html/make-15.htmlmake 执行过程中所产生错误并不都是致命的;特别是在命令行之前存在“ - ”、或者 make 使用“ -k ”选项执行时。 make 执行过程的致命错误都带有前缀字符串“*** ”。错误信息都有前缀,一种是执行程序名作为错误前缀转载 2016-02-22 11:31:52 · 4831 阅读 · 1 评论 -
pthread_once 和 pthread_key
一次性初始化 有时候我们需要对一些posix变量只进行一次初始化,如线程键(我下面会讲到)。如果我们进行多次初始化程序就会出现错误。 在传统的顺序编程中,一次性初始化经常通过使用布尔变量来管理。控制变量被静态初始化为0,而任何依赖于初始化的代码都能测试该变量。如果变量值仍然为0,则它能实行初始化,然后将变量置为1。以后检查的代码将跳过初始化。 但是转载 2014-02-28 14:43:36 · 663 阅读 · 0 评论 -
SVN命令总结
一、从版本库获取信息svn help command 获取子命令说明svn info $URL 查看工作空间信息 若是目录地址,查看本地目录信息,若无$DIR,默认为当前目录 若是文件地址,查看本地文件信息svn list 显示给定目录在某一版本存在的文件 svnlist 显原创 2014-02-28 18:15:08 · 28637 阅读 · 1 评论 -
Win32API大全
1. API之网络函数WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetCloseEnum转载 2013-09-16 17:55:17 · 1720 阅读 · 1 评论 -
Windows中的管道技术
在以前学Linux的时候,碰到过管道的问题,认为管道不过是一个程序的输出作为一个程序的输入。就像这样: #cat file | grep "abc" 这里,cat file的output,直接当作grep "abc"这个命令的input,利用管道,可以改变程序默认的input与output. 今天无意中翻MSDN,看到windows当中也有Pipe的概念.以前转载 2013-09-16 15:28:09 · 1209 阅读 · 0 评论 -
回调函数的概念及其使用
1 什么是回调软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;异步调用是一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用转载 2013-09-11 23:59:20 · 1239 阅读 · 0 评论 -
C/C++中指针和引用之相关问题研究
C++类中拷贝构造函数详解 UML状态图诸要素C/C++中指针和引用之相关问题研究 2009-12-30 20:04:13| 分类:C/C++ | 标签:|字号大中小 订阅一、基本知识指针和引用的声明方式:声明指针: char* pc;声明引用: char c = 'A'转载 2013-09-10 10:13:22 · 704 阅读 · 0 评论 -
循环队列的队空与队满的条件
为了方便起见,约定:初始化建空队时,令 front=rear=0, 当队空时:front=rear 当队满时:front=rear 亦成立 因此只凭等式front=rear无法判断队空还是队满。 有两种方法处理上述问题: (1)另设一个标志位以区别队列是空还是满。 (2)少用一个元素空间,约定以“队列头指针front在队尾指针rear的下一个位转载 2013-05-23 21:58:07 · 2213 阅读 · 0 评论 -
C语言中的BYTE和char
在C语言中,字符(character)这个术语具有两个层次上的含义:书写源程序的字符和程序处理的字符。 例如,在下面的源程序中“""”之内的“你”、“好”、“,”、“C”、“!”、“\n”就属于程序要处理的字符。 #include int main(void){ printf("你好,C!\n"); return 0;}转载 2013-04-02 17:32:19 · 8137 阅读 · 0 评论 -
C++中string的常用函数总结
标准c++中string类函数介绍注意不是CString之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据转载 2014-02-28 15:59:40 · 17082 阅读 · 1 评论 -
OTL学习笔记--OTLHelper的实现
OTL简介OTL是Oracle, ODBC and DB2-CLI Template Library的缩写,目前版本是4.0,是基于C++模板机制的C++库。OTL 4.0 由一个C++模板框架(C++ template framework)和许多OTL适配器(OTL-adapters)组成。框架是OTL streams的泛型实现,OTL适配器是底层数据库API的包装类,作为对象的转载 2014-03-19 17:28:31 · 1608 阅读 · 0 评论 -
教你透彻了解红黑树
推荐阅读:Left-Leaning Red-Black Trees, Dagstuhl Workshop on Data Structures, Wadern, Germany, February, 2008. 直接下载:http://www.cs.princeton.edu/~rs/talks/LLRB/RedBlack.pdf------------------------转载 2014-06-26 10:40:09 · 628 阅读 · 0 评论 -
linux下字符串与十六进制之间的转换
#include #include #include //字符串转换成16进制inline char *CharArrayToHexString(char* pOut, const int nMaxLen, const char* pInput, const int nInLen){ const char* chHexList = "0123456789ABCDEF";原创 2015-09-10 09:47:02 · 20583 阅读 · 0 评论 -
linux 下时间字符串和time_t类型之间的相互转化
#include #include #include #include time_t ConvertStrtoTime(char * szTime){ tm tm_; time_t t_; strptime(szTime, "%Y-%m-%d %H:%M:%S", &tm_); //将字符串转换为tm时间 tm_.tm_isd原创 2015-09-01 15:19:36 · 9741 阅读 · 0 评论 -
java与C++之间进行SOCKET通讯要点简要解析
java与C++之间进行SOCKET通讯要点简要解析hslinux0、篇外语 此乃本人学习过程中自娱自乐之作,为了遗忘后有个地方再温习。如入您法眼,转载请尊重原作者,请说明出处。1、big-endian与little-endian Endian定义:在计算机系统体系结构中用来描述在多字节数中各个字节的存储顺序。big-endian也转载 2015-07-28 16:25:13 · 612 阅读 · 0 评论 -
C/C++语言中参数的传值问题
C语言中参数的传值一直比较含糊,今天在网上看到三个面试题的详解,感觉讲的很好,就拿来记下,方便学习和记忆。1. 考题一:程序代码如下:void Exchg1(int x, int y) { int tmp; tmp=x; x=y; y=tmp; printf(“x=%d,y=%d/n”,x,y)}void main(){ int a=4原创 2011-12-15 17:20:06 · 4257 阅读 · 3 评论 -
Linux下忽略信号SIGPIPE的方法
最近为测试自己写好的一个服务器,zi原创 2014-10-30 18:55:56 · 16856 阅读 · 4 评论 -
C 语言中的段位操作
C 语言中的段位操作1.位段结构中位段的定义格式为: unsigned : 例如: struct bytedata {unsigned a:2; /*位段a,占2位*/ unsigned:6; /*无名位段,占6位,但不能访问*/ unsigned:0; /*无名位段,占0位,表下一位段从下一字边界开始*/ unsigned b:10; /*位段b,占1转载 2014-08-15 14:43:56 · 1505 阅读 · 0 评论 -
C++类静态成员与类静态成员函数
当将类的某个数据成员声明为static时,该静态数据成员只能被定义一次,而且要被同类的所有对象共享。各个对象都拥有类中每一个普通数据成员的副本,但静态数据成员只有一个实例存在,与定义了多少类对象无关。静态方法就是与该类相关的,是类的一种行为,而不是与该类的实例对象相关。 静态数据成员的用途之一是统计有多少个对象实际存在。 静态数据成员不能在类中初始化,实际上类定义只是在转载 2014-07-03 17:58:21 · 626 阅读 · 0 评论 -
红黑树的实现源码(第二次修订版)
我曾经写过两个两个红黑树的实现, 分别在:http://www.cppblog.com/converse/archive/2006/10/07/13413.htmlhttp://www.cppblog.com/converse/archive/2007/11/28/37430.html最近因为要给ccache加入红黑树的支持, 找出来曾经实现的代码作为参考, 这才发现原来的实现转载 2014-06-26 10:37:16 · 623 阅读 · 0 评论 -
Dan Saks_const T vs T const
const用法精髓原文地址:Saks_const T vs T const" href="http://blog.sina.com.cn/s/blog_61c2cbe90100ypsh.html" target="_blank">Dan Saks_const T vs T const作者:梧桐In my last column, I discussed one of the rea转载 2012-11-06 21:20:18 · 828 阅读 · 0 评论 -
C和C++函数的相互引用
转自 http://hi.baidu.com/hu_tu/blog/item/c32ac1dc0464 d9a5cd1166e4.html C和C++函数的相互引用上次代码了碰到了这个问题,.c中调用.cpp中的函数,网上搜之,得此佳文。原文地址:http://blog.csdn.net/wfwd/archive/2006/05/30/763734.aspx=转载 2012-09-04 23:14:00 · 710 阅读 · 0 评论 -
面向对象的设计法则2[Program To An Interface, Not An Implementatio]
法则2:针对接口编程,而非(接口的)实现[ Program To An Interface, Not An Implementatio]接口1.接口是一个对象在对其它的对象进行调用时所知道的方法集合。2.一个对象可以有多个接口(实际上,接口是对象所有方法的一个子集)3.类型是对象原创 2011-07-26 11:59:31 · 1071 阅读 · 0 评论 -
面向对象的设计法则1[Favor Composition Over Inheritance]
法则1:优先使用(对象)组合,而非(类)继承[ Favor Composition Over Inheritance ]组合1.(对象)组合是一种通过创建一个组合了其它对象的对象,从而获得新功能的复用方法。2.将功能委托给所组合的一个对象,从而获得新功能。3.有些时候也称之为"聚原创 2011-07-26 11:58:16 · 2924 阅读 · 0 评论 -
数据结构学习连接
栈和队列http://www.cnblogs.com/sharpCode/archive/2011/04/07/2008841.html背包问题View Code 1#include 2#include 3typedef int ElemType; 4typedef struct LNode 5{ 6 ElemType w; 7struct LNode *next; 8}LNode,*LinkList ; 9typedef LinkList LinkStack;1011 void initSt原创 2011-05-06 15:19:00 · 2432 阅读 · 0 评论 -
怎么成为一个软件架构师
<br />怎么成为一个软件架构师<br /> <br />的确没想到随手写的东西有那么多的回复,不管怎样还是挺高兴的。在这里谢谢大家的关注了。其实做了这么多年的技术脑子里总会跳出很多的想法,但很少有时间静下来仔细地思考思考,写写博客也算是一种自我归纳和总结吧。<br /> “软件架构师”这个名词也不知是什么时候进入我的脑中的,不过一直就很疑惑,总觉得和软件的Team Leader之间有些纠缠不清。不过以我的观点来看,软件架构师除了没有行政上的职责以外,与Team Leader也并无二致了,也就转载 2011-05-02 13:09:00 · 764 阅读 · 0 评论 -
多线程学习
今天下午的双周会,轮到了我分享,我给大家分享的是多线程,个人平时也比较喜欢弄这个东西;我这里没有给大家说线程是什么,我的思路是通过讲解关键字,再通过实例来讲解各关键字的使用,以及后面的巩固练习,讲得比较浅,都是一些基本知识。 这里YY一下,那就是阿里的分享气氛非常好,就是大家都愿意分享,都能够分享,彼此学习,大家共同提高,如了进入正题了。 一、多线程相关关键字 Ru转载 2011-06-08 16:29:00 · 845 阅读 · 0 评论 -
SQLite3 C/C++编程接口介绍
本文介绍一下SQLite C/C++接口。早期的SQLite C/C++接口只有5个接口函数, 很容易学习。 新版本的SQLite新增了很多功能, 目前大概有185个API接口。本文介绍一些核心的API接口和对象。1. 核心对象 数据库连接对象: sqlite3prepared_statement对象: sqlite3_stmt严格的讲 sqlite3_stmt对象也不是必须的, 另外翻译 2011-06-07 22:09:00 · 10583 阅读 · 1 评论 -
嵌入式工程师修炼:自信 坚强 积极 勤快
(1)首先学嵌入不是为了跟风,而是为了逐浪。不是要看大家都去做 这一行才去做。是真的喜欢,这样才能精,才能做到“逐浪”!(2)成功的历程是漫长、艰辛的,要有一颗艰韧不拔的心:P(3)文章中说的学习过程和资料大致差不多。但可惜的是在我花了很 长时间入门后才发现这篇文章,要不那短时间会缩减不少。个人觉得需要注意的一点是:文中提到的步骤不是按步就班的,根据 个人的情况补全即可:P 近来嵌入式挺火,于是大家都往这里挤。我想提醒大家的是,嵌入式马上也会成为如今的软件业。在你进来之前请先考虑清楚。但只要我们真的学精了转载 2011-02-15 15:32:00 · 667 阅读 · 0 评论 -
QString和char 以及string之间的赋值
QString 、string 、char* 之间免不了相互赋值。下面是自己的总结:一、QString赋值给char* 例如: QString qstr; char *str = qstr.toLatin1().data();二 、char [] 赋值给string char str[32]; string str2(str);//这样便把str中的值传给了str2;原创 2011-02-09 17:20:00 · 9188 阅读 · 0 评论 -
追MM与设计模式
创建型模式 1 、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时转载 2011-07-26 16:10:50 · 530 阅读 · 0 评论 -
面向对象的设计法则3[Software Entities Should Be Open For Extension, Yet Closed For Modification ]
法则3:开放-封闭法则(OCP)软件组成实体应该是可扩展的,但是不可修改的。[ Software Entities Should Be Open For Extension, Yet Closed For Modification ]开放-封闭法则1.开放-封闭法则认为我们应该试原创 2011-07-26 12:00:46 · 1297 阅读 · 0 评论 -
面向对象的设计法则4
法则4:Liskov替换法则(LSP)使用指向基类(超类)的引用的函数,必须能够在不知道具体派生类(子类)对象类型的情况下使用它们。[ Function Thar Use Referennces To Base(Super) Classes Must Be Able To Use原创 2011-07-26 12:30:00 · 522 阅读 · 0 评论 -
c++ 的4种类型转化方式
具体归纳如下:(1)reinterpret_cast该函数将一个类型的指针转换为另一个类型的指针.这种转换不用修改指针变量值存放格式(不改变指针变量值),只需在编译时重新解释指针的类型就可做到.reinterpret_cast 可以将指针值转换为一个整型数,但原创 2011-09-22 11:19:04 · 523 阅读 · 0 评论 -
C++引用与指针的比较
C++引用与指针的比较引用是C++中的概念,初学者容易把引用和指针混淆一起。 一下程序中,n是m的一个引用(reference),m是被引用物(referent)。 int m; int &n = m;n相当于m的别名(绰号),对n的任何操作就是对m的操作。转载 2011-08-11 16:04:14 · 607 阅读 · 0 评论 -
C++的拷贝构造函数(深拷贝、浅拷贝)
在某些状况下,类内成员变量需要动态开辟堆内存,如果实行位拷贝,也就是把对象里的值完全复制给另一个对象,如A=B。这时,如果B中有一个成员变量指针已经申请了内存,那A中的那个成员变量也指向同一块内存。这就出现了问题:当B把内存释放了(如:析构),这时A内的指针就是野指针了,出现运行原创 2011-08-11 15:57:24 · 550 阅读 · 0 评论 -
Effective C++读书笔记 之链接
主要包括导读和内存资源管理http://www.cppblog.com/yugong/category/5652.html原创 2011-08-08 13:57:58 · 590 阅读 · 0 评论 -
Effective C++读书笔记 资源管理(之一)
Effective C++读书笔记--By Nathan.Yu 2007-11-27--3资源管理(之一)常见的资源:文件描述器(file descriptors)、互斥锁(mutex locks)、图形界面中的字型和笔刷、数据库连接、网络sockets。转载 2011-08-08 13:56:38 · 531 阅读 · 0 评论 -
Effective C++读书笔记 之导读
0导读1、设计策略如何在两个不同的做法中择一完成某项任务,如该选择inheritance(继承)还是templates(模板)?该选择public继承还是private继承?该选择private继承还是composition(复合)?该选择member函数还是no转载 2011-08-08 14:00:54 · 569 阅读 · 0 评论 -
出错处理函数abort、exit、atexit、strerror. . .
摘要:本文详细讲述了几个出错处理的函数abort、exit、atexit、strerror函数的使用方法,并给出来具体的示例程序。 函数名: abort功 能: 异常终止一个进程用 法: void abort(void);头文件:#inc转载 2011-08-05 14:12:30 · 646 阅读 · 0 评论