
资料收藏(C/C++)
风吹过的时光
别问我是谁,我只是个过客。
展开
-
eclipse自动封装set 和get 方法及构造函数及覆写父类的方法.
原文出处:http://hi.baidu.com/mysoul2008/blog/item/58b459c56429b5d438db498a.htmleclipse自动封装set 和get 方法及构造函数及覆写父类的方法.2012-02-14 12:561.生成类属性的 set()和get():右键 Source—->Generate Getters and S转载 2012-05-11 11:02:35 · 12049 阅读 · 0 评论 -
c++反射机制的实现(完整代码,相当靠谱)
下面是c++反射机制的一个实现,比较完整。出自:http://www.oschina.net/code/snippet_230828_9913虽然这是windows下写的代码,但是比较合理,非人云亦云,很靠谱。我昨天说过实现一个优秀的c++反射机制,一定要和动态链接库扯上关系(个人认为)。下面这篇文章,虽然没有扯上动态链接库,但是也是相当不错的了。关于我个人认为的c++反射机制完整优秀版本转载 2013-05-12 09:18:15 · 12224 阅读 · 1 评论 -
gdb调试core文件
编写服务器端程序,很容易遇到Crash问题,比较幸运的是Linux提供了core file,保留了Crash的现场。有时候,根据当前的调用栈,并且打印出当前栈的变量就可以分析出crash的原因,但是,有时候看到调用栈却束手无策。下面就介绍自己通过GDB的几个命令的结合,发现一个crash的原因的过程。下面让我们一起进入现场,来逐步发现其中的原因。首先,还是运行gdb 命转载 2014-07-28 12:02:24 · 13143 阅读 · 0 评论 -
C++ 虚函数表解析
C++ 虚函数表解析 陈皓http://blog.youkuaiyun.com/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,R转载 2015-05-06 18:13:32 · 689 阅读 · 0 评论 -
TCp传输粘包问题
解决TCP网络传输“粘包”问题 当前在网络传输应用中,广泛采用的是TCP/IP通信协议及其标准的socket应用开发编程接口(API)。TCP/IP传输层有两个并列的协议:TCP和UDP。其中TCP(transport controlprotocol,传输控制协议)是面向连接的,提供高可靠性服务。UDP(user datagramprot转载 2012-05-17 12:52:56 · 1059 阅读 · 0 评论 -
类的普通成员函数的指针
很多朋友都知道虚函数有虚函数指针,并且存放在对象的虚函数表中,它和普通成员变量一样与对象相关,因此虚函数的指针是和对象级的。一个类的普通成员函数是类级的,因此普通成员函数的指针也是类级的。一个类的普通成员函数的指针,少有文献提及,因为很少需要用到普通成员函数的指针。尽管如此,在一些特殊的场合,还是有可能需要用到的。1) 成员函数简介在 C++ 中,成员函数的指针是个比较特殊的东西。转载 2015-05-22 17:18:39 · 876 阅读 · 0 评论 -
C++设计模式——享元模式
C++设计模式——享元模式2014-01-07 分类:C++ / 设计模式 阅读(634)评论(12) 前言无聊的时候,也去QQ游戏大厅玩五子棋或者象棋;作为程序员,看到一个产品,总要去想想它是怎么设计的,怎么完成的,我想这个是所有程序员都会做的事情吧(强迫症???)。有的时候,想完了,还要做一个DEMO出来,才能体现自己的NB,然后还有点小成就感。在玩五子棋或象棋转载 2016-01-19 17:18:18 · 761 阅读 · 0 评论 -
标准C++中的string类的用法总结
出自:http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用。但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的。也许有人会说,即使不用MFC框架,也可以想办法使用MFC中转载 2013-08-07 18:58:10 · 890 阅读 · 0 评论 -
string的find函数返回值和string::npos 的理解
由上面可以看出,string::npos的值是-1并不准确,string::npos的值是无符号型类型的,其值是(unsigned int)(-1),也就是4294967295,但是和int 类型的-1比较结果是true,所以使用的时候,认为其值是int类型的-1不会影响结果.string::find这类型的函数,返回值类型都是string::size_type, 而string::size_type其实是一种unsigned int类型。find的结果记录匹配的位置,或者返回一个名为string::n原创 2013-07-23 17:16:54 · 10819 阅读 · 1 评论 -
C++中返回对象的情形及RVO
之前有文章介绍过临时对象和返回值优化RVO方面的问题。见此处。在C++中,返回对象这一点经常被诟病,因为这个地方的效率比较低,需要进行很多的操作,生成一些临时对象,如果对象比较大的会就会比较耗时。但是在编译器实现的时候,经常是对返回对象的情况进行优化,也就是进行返回值优化 。在g++中,这个是默认已经进行了优化。以前我希望看看到底C++怎么操作的,但是无法看到,就是因为G++进行了转载 2017-02-28 00:02:55 · 635 阅读 · 0 评论 -
用Google的gflags优雅的解析命令行参数
用Google的gflags优雅的解析命令行参数写了这么多年的Linux下C/C++代码,一直使用getopt_long来解析命令行参数,同时定义一个全局的struct来保存各个命令行参数的值。虽然用得比较“繁琐”,但也安于现状。最近突然发现了Google早在多年前就开源了一个解析命令行参数的“神器”gflags。赶紧来爽一把。 安装1、去官网转载 2017-01-21 18:19:01 · 1564 阅读 · 0 评论 -
GCC __builtin_expect的作用
将流水线引入cpu,可以提高cpu的效率。更简单的说,让cpu可以预先取出下一条指令,可以提供cpu的效率。如下图所示:+--------------------------------|取指令 | 执行指令 | 输出结果+--------------------------------| | 取指令 | 执行+-----------------转载 2017-02-14 19:27:55 · 667 阅读 · 0 评论 -
C++中构造函数初始化列表与构造函数体的区别
既然构造函数初始化列表和构造函数体内赋值都可以对成员变量赋值,那么二者有何区别,是不是二者等效呢? 构造函数可以分两个阶段进行:(1)初始化阶段;(2)普通计算阶段。计算阶段也就是由函数体内所有的语句组成。不管成员是否在构造函数初始化列表中显式初始化,类的数据成员初始化总是在初始化阶段进行,初始化阶段先于计算阶段。构造函数初始化列表是对类的成员做初始化,而在构造函数体内只是对类转载 2017-02-15 08:48:42 · 3613 阅读 · 1 评论 -
教你如何设置EditPlus的默认编码方式
最近在使用英文版的Editplus写代码的时候,发现中文字符在调试过程中都变成了乱码,发现时Editplus编码设置的问题,Editplus默认编码可能是ANSI,需要将其改成UTF-8。下面就说下具体的设置方法。首先,在Tools下拉后选择Configure User Tools,弹出用户配置对话框,如下图:然后,在下面的对话框中的左侧选择Files设置项,在右侧面板中选择UTF-8原创 2012-08-27 12:59:29 · 38928 阅读 · 6 评论 -
Linux网络编程必看书籍--经典权威推荐
首先要说讲述计算机网络和TCP/IP的书很多。先要学习网络知识才谈得上编程讲述计算机网络的最经典的当属Andrew S.Tanenbaum的《计算机网络》第五版,这本书难易适中。《计算机网络(第5版)》是国内外使用最广泛、最权威的计算机网络经典教材。目前已经是第五版,本书作者80年代就开发出MINIX,是一个用于操作系统教学的类UNIX(的小型操作系统。而linux就是受其影响转载 2014-04-14 06:07:26 · 3022 阅读 · 1 评论 -
正确使用stl map的erase方法
正确使用stl map的erase方法先声明:下面的文章是针对windows的用法,因为std::map的erase函数的windows的实现版本是返回一个std::map的迭代器,但是STL标准里面的该函数的返回值确是:map.erase有3个重载:void erase ( iterator position );size_type erase ( const k转载 2012-05-23 12:00:13 · 1205 阅读 · 0 评论 -
Source Insight中的parse too complex问题
SI的一个很有用的功能是可以列出所有的函数名和变量名,然而在Source Insight的工程中,偶尔会遇到那么一两个文件,里面的函数名和变量名无法解析,提示“parse too complex”。难道这段程序真的复杂到SI都不认识了吗?非也。这其中的罪魁祸首就是条件预编译指令。 在一个Source Insight工程中,它里面所有的没有确定数值的宏都被认为是有效的,那么对于类似#i转载 2013-06-26 14:05:22 · 5821 阅读 · 0 评论 -
linux c 读写超过2G的大文件解决办法
linux默认环境下打开、读、写超过2G的文件会返回错误。定义如下宏可以突破这个限制,对read/write和fread/fwrite同时有效。注意它必须定义在所有头文件之前。#define _FILE_OFFSET_BITS 64 #include #include #include #include #include转载 2013-07-18 11:53:14 · 13122 阅读 · 0 评论 -
Free命令详解 linux Cache详解
因为LINUX的内核机制,一般情况下不需要特意去释放已经使用的cache。这些cache起来的内容可以增加文件以及的读写速度。先说下free命令怎么看内存[root@yuyii proc]# freetotal used free shared buffers cachedMem: 515588 295452 220136 0 2060 64040-/+ buffers/c转载 2013-07-23 16:45:33 · 2072 阅读 · 0 评论 -
linux环境下一个进程最多能有多少个线程?
默认情况下linux环境下一个进程最多能有多少个线程?:主线程+自己的线程382 = 383这我自己已经验证过,测试程序在后面。原创 2013-07-19 10:20:23 · 4691 阅读 · 1 评论 -
位结构体
转自:http://blog.youkuaiyun.com/goondrift/article/details/6486216位结构 节省存贮空间 “:”操作符 位域 一、首先说概念:位结构是一种特殊的结构, 在需按位访问一个字节或字的多个位时, 位结构比按位运算符更加方便。 位结构定义的一般形式为: struct 位结构名{ 数据类型 [变量名]: 整型常数;转载 2013-10-28 10:45:01 · 758 阅读 · 0 评论 -
do while(0) 的妙用----终于知道为什么有些人的代码中要“多此一举”了
在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。 但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。1. do...while(0)消除goto语句。通常,如果在一个转载 2013-11-13 17:13:14 · 5207 阅读 · 0 评论 -
char 与 unsigned char的本质区别
在C中,默认的基础数据类型均为signed,现在我们以char为例,说明(signed) char与unsigned char之间的区别 首先在内存中,char与unsigned char没有什么不同,都是一个字节,唯一的区别是,char的最高位为符号位,因此char能表示-128~127, unsigned char没有符号位,因此能表示0~255,这个好理解,8个bit,最多256种情况,转载 2013-12-27 15:15:46 · 1026 阅读 · 0 评论 -
OCCI调用存储过程实现批量插入
// 打开一个查询 COcciQuery occiQuery; occiQuery.Open(m_pServerInfo->m_connPool.m_connTSP.GetConn()); // 初始化存储过程 occiQuery.SetSQL("BEGIN LHWT_CUSTOMER_REGIST_PRO(:v1, :v2, :v3, :v4, :v5, :v6,转载 2014-02-18 09:57:52 · 1873 阅读 · 0 评论 -
oracle sqlplus 导出csv文件
spool.sql[html] view plaincopyprint?set colsep , set feedback off set heading off set trimout on spool D:\DBoracle\lfc.csv select '"' || user_name || '","' || user_age || '","' || user_c转载 2014-04-24 08:55:28 · 10533 阅读 · 0 评论 -
使用 C++11 智能指针时要避开的 10 大错误
使用 C++11 智能指针时要避开的 10 大错误http://blog.jobbole.com/104666/转载 2017-05-06 14:51:05 · 677 阅读 · 0 评论