C++/C
文章平均质量分 71
mannhello
穷则变,变则通,通则久。
展开
-
初学者学习C++的50条忠告(转)
2008-12-05 11:05:24 www.hackbase.com 来源:中国IT实验室 1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们 ... 1原创 2009-09-14 18:08:00 · 631 阅读 · 0 评论 -
指针和引用有什么区别
指针在引用变量的时候需要加& 或*不够方便而定义一个引用,就相当与给变量起了个别名,在引用变量是只需要通过别名就可以直接引用对应变量--------------------------------------------------------------------------------指针不确定有无初始化过其变量的值引用不存在这个问题,要考虑同名的问题基本上两者一样,看你用在什么方面转载 2011-06-14 08:48:00 · 575 阅读 · 0 评论 -
struct和typedef struct (转)
<br />分三块来讲述:<br />1 首先:<br /> 在C中定义一个结构体类型要用typedef:<br /> typedef struct Student<br /> {<br /> int a;<br /> }Stu;<br />于是在声明变量的时候就可:Stu stu1;<br />如果没有typedef就必须用struct Student stu1;来声明<br />这里的Stu实际上就是struct Student的转载 2011-04-28 17:12:00 · 563 阅读 · 0 评论 -
WORD & BYTE & 进制转换
1 typedef unsigned char BYTE;typedef unsigned short WORD;定义:BYTE *pszBuf; 现需要将一个十进制数字 N 赋值给两个BYTE,即*pszBuf,*pszBuf(1); 方法一:可以使用如下代码: *((WORD *)pszBuf ) = N; 其他方法:待续。 2 十进制转换为十六进制2.1 CHAR m_原创 2010-03-16 11:14:00 · 2874 阅读 · 0 评论 -
正则表达式30分钟入门教程(第二版)
作者:deerchao 来源:unibetter大学生社区 转载请注明来源 本文第一版目录本文目标 如何使用本教程 什么是正则表达式? 入门 测试正则表达式 元字符 字符转义 重复 字符类 反义 替换 分组 后向引用 位置指定 负向位置指定 注释 贪婪与懒惰 平衡组 还有些什么东转载 2011-07-27 08:29:37 · 583 阅读 · 0 评论 -
字符串处理常用函数
1 C Languageatof将字符串转换成浮点数atoi将字符串转换成整数atol将字符串转换成长整型数isalnum当字母或数字字符时, 返回真值isalpha当字母字符时, 返回真值 iscntrl当控制字符时, 返回真值isdigit当数字字符时, 返回真值isgrap转载 2011-07-29 08:57:33 · 557 阅读 · 0 评论 -
const_cast,reinterpret_cast,static_cast,dynamic_cast简介
标准c++中主要有四种强制转换类型运算符: const_cast,reinterpret_cast,static_cast,dynamic_cast等等。 1)static_cast(a) 将地址a转换成类型T,T和a必须是指针、引用、算术类型转载 2011-08-11 09:29:10 · 773 阅读 · 0 评论 -
c++容器简介与比较
最近从网上找了一些资料,自己简单整理了一下. 1 概要介绍vector用来代替数组,也就是,要经常用下标运算的地方 list是链表,多用表经常使用插入删除的地方map是图,比如做一个字典了,电话薄了,会用到 queue很少用,比如排队买火车票的队列,就是这原创 2011-08-16 14:59:55 · 6197 阅读 · 1 评论 -
map用法详解
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(转载 2011-08-19 13:59:40 · 743 阅读 · 0 评论 -
__super in MFC
1 MFC中的 __super 和 java 中 super 类似,相当于基类的名称,都可以用来调用基类成员;2 __xxxx 类型的,是编译器或库内部使用的;3 __super是编译器关键词,是一个辅助工具,在多重继承和多级继承环境下很方便,当你需要调用基类成员时,不需原创 2011-09-27 15:50:07 · 1793 阅读 · 0 评论 -
Std::list iterator 的初始化和有效性判断
最近在使用Std::list 的时候,程序偶尔会在iterator 进行比较的时候崩溃。Review代码发现iterator的内存为0xcdcdcdcd, 很显然内存地址越界了。所以对Std::list iterator 的初始化和有效性的问题做了一些查找,很可惜没能搜集到原创 2011-09-28 11:10:26 · 10787 阅读 · 0 评论 -
浅谈TCP/IP网络编程中socket的行为
我认为,想要熟练掌握Linux下的TCP/IP网络编程,至少有三个层面的知识需要熟悉:1. TCP/IP协议(如连接的建立和终止、重传和确认、滑动窗口和拥塞控制等等)2. Socket I/O系统调用(重点如read/write),这是TCP/IP协议在应用层表现出来的行为。3. 编写Performant, Scalable的服务器程序。包括多线程、IO Multiplexing、转载 2012-09-24 16:26:20 · 927 阅读 · 0 评论 -
浮点异常值:NAN,QNAN,SNAN
32位浮点数在机器中的表示按照IEEE的标准是这样的: +------+----------------+-------------------------------+ | 1bit | 8bit | 23bit | +------+----------转载 2012-12-04 11:30:33 · 1660 阅读 · 0 评论 -
1.#QNAN、1.#IND和1.#INF等“无效”浮点数说明及其判断
转载: http://blog.163.com/shining317@126/blog/static/1846965220105191551388/在GIS视图上发现部分小区不能正常呈现,通过跟踪异常小区发现其所属基站的经纬度坐标都是-1.#QNAN00000000000无效值,导致小区绘制失败,这些小区均属新入网的3G基站,资源数据还没有维护起来,数据库中对应字段为空,经过TUXEDO接转载 2012-12-04 11:23:17 · 2339 阅读 · 0 评论 -
/C/C++ DLL在其它语言中的调用 结构体/数组 指针
一 结构体/数组作为返回值 1. Called in C# c++ codes:typedef struct TRANSACTION{char account[19];int maxNum;char startDate[16];char endDate[16];} TRANSACTION;typedef struct QUERY{int转载 2013-04-13 11:11:56 · 1729 阅读 · 0 评论 -
关于C++ const 的全面总结(转)
C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、Const作用 如下表所示:No. 作用 说明 参考代码 1 可以定义const常量 cons转载 2011-06-13 09:43:00 · 462 阅读 · 0 评论 -
Const,Const函数,Const变量,函数后面的Const (zz) (转)
<br />看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。<br />const 是constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设计书籍建议:“Use const whenever you need”。<br />1.用con转载 2011-05-30 08:57:00 · 449 阅读 · 0 评论 -
C++中的RTTI(转)
RTTI 是“Runtime Type Information”的缩写,意思是:运行时类型信息。它提供了运行时确定对象类型的方法。本文将简略介绍 RTTI 的一些背景知识、描述 RTTI 的概念,并通过具体例子和代码介绍什么时候使用以及如何使用 RTTI;本文还将详细描述两个重要的 RTTI 运算符的使用方法,它们是 typeid 和 dynamic_cast。 其实,RTTI 在C++中并不是什转载 2010-01-20 17:28:00 · 21911 阅读 · 7 评论 -
C++ 虚函数 多态(转)
1、什么是虚函数和多态虚函数是在类中被声明为virtual的成员函数,当编译器看到通过指针或引用调用此类函数时,对其执行晚绑定,即通过指针(或引用)指向的类的类型信息来决定该函数是哪个类的。通常此类指针或引用都声明为基类的,它可以指向基类或派生类的对象。多态指同一个方法根据其所属的不同对象可以有不同的行为(根据自己理解,不知这么说是否严谨)。举个例子说明虚函数、多态、早绑定和晚绑定:李氏两转载 2009-12-03 12:59:00 · 427 阅读 · 0 评论 -
C++引用
引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。我在工作中发现,许多人使用它仅仅是想当然,在某些微妙的场合,很容易出错,究其原由,大多因为没有搞清本源。故在本篇中我将对引用进行详细讨论,希望对大家更好地理解和使用引用起到抛砖引玉的作用。 引用简介 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。 引用的声明方转载 2009-12-03 15:41:00 · 387 阅读 · 0 评论 -
c++多态技术
多态(polymorphism)一词最初来源于希腊语polumorphos,含义是具有多种形式或形态的情形。定义是"一种将不同的特殊行为和单个泛化记号相关联的能力"。C++中的多态含义:1)常见的通过类继承和虚函数机制生效于运行期的动态多态(dynamic polymorphism);今天,当我们谈及多态时,如果没有明确所指,默认就是动态多态;2)使用模板允许将不同的特殊行为和单个泛化记号相关联,转载 2009-12-03 12:54:00 · 634 阅读 · 0 评论 -
'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'unsigned int (void *)'
问题: 本人编了一个小程序,以实验VC++的多线程,我按照书上指点的写了以下代码: HWND hWnd=GetSafeHwnd(); AfxBeginThread(BounceProc,hWnd); 并定义了BounceProc这个函数: UINT CBounceView::BounceProc(LPVOID pParam) 但编译时却出错:转载 2009-12-09 09:53:00 · 12417 阅读 · 0 评论 -
C++模板的使用
模板定义:模板就是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数, 从而实现了真正的代码可重用性。就是说,有很多工作,对不同的数据类型,处理上是一致的,这时我们就可以只写一份代码,对不同类型的变量采用相同的代码来处理。模版可以分为两类,一个是函数模版,另外一个是类模版。函数模板:template class 或 typename T>返回类型 函数名(转载 2009-12-14 09:32:00 · 711 阅读 · 0 评论 -
#ifdef(转)
这几个宏是为了进行条件编译。一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。 条件编译命令最常见的形式为: #ifdef 标识符 程序段1 #else 程序段2 #endi转载 2010-03-10 09:35:00 · 1304 阅读 · 0 评论 -
#pragma pack(push,1) & #pragma pack(pop)
1 引子 在程序中,有的时候我们定义结构体的时候,要用#pragma pack(push,1) & #pragma pack(pop)类似代码将结构体包起来。一般形式如下:#pragma pack(push,1); struct A{ } ;#pragma pack(pop);这么做有什么目的呢? 注:下列内容来自网络。2 #pragma pa转载 2010-03-16 10:29:00 · 17502 阅读 · 4 评论 -
动态链接库中分配内存引起的问题(转)
本文主要是探讨关于在动态链接库分配的内存在主程序中释放所产生的问题,该问题是我在刚做的PJP工程中所遇到的,由于刚碰到之时感动比较诡异(这也是学识不够所致),所以将它写下来,大家一起分享. 问题来由:由于该工程中要用到声音,所以我的分工之一就是用DirectMusic和DirectSound来开发声音播放的动态库,以提供给该工程的两个部分:仿真控制部分( 语音 )和三维部分(转载 2010-01-06 17:45:00 · 1173 阅读 · 0 评论 -
动态链接库内存分配(转)
本文主要是探讨关于在动态链接库分配的内存在主程序中释放所产生的问题,该问题是我在刚做的PJP工程中所遇到的,由于刚碰到之时感动比较诡异(这也是学识不够所致),所以将它写下来,大家一起分享. 问题来由:由于该工程中要用到声音,所以我的分工之一就是用DirectMusic和DirectSound来开发声音播放的动态库,以提供给该工程的两个部分:仿真控制部分( 语音 )和三维部分(转载 2010-01-07 18:10:00 · 2759 阅读 · 0 评论 -
堆和栈的区别(转贴)
一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)—> 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap)—> 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—>全局转载 2010-01-07 18:15:00 · 521 阅读 · 0 评论 -
内存泄露检测工具 -- Visual Leak Detector (转)
灵活自由是C/C++语言的一大特色,而这也为C/C++程 序员出了一个难题。当程序越来越复杂时,内存的管理也会变得越加复杂,稍有不慎就会出现内存问题。内存泄漏是最常见的内存问题之一。内存泄漏如果不是很严 重,在短时间内对程序不会有太大的影响,这也使得内存泄漏问题有很强的隐蔽性,不容易被发现。然而不管内存泄漏多么轻微,当程序长时间运行时,其破坏力是 惊人的,从性能下降到内存耗尽,甚至会影响到其他转载 2010-01-10 20:35:00 · 962 阅读 · 0 评论 -
常见内存泄露及解决方案(转)
常见内存泄露及解决方案-选自ood启示录new/delete, array new/arrray delete匹配case 1:在类的构造函数与析构函数中没有匹配地调用 new/delete! 解决方法:检查构造函数,在出现new的情况下,按相反的顺序在析构函数中匹配添加delete!这里有两个意思: 1〉new与delete匹配,array new/array delete匹配;转载 2010-01-10 21:29:00 · 844 阅读 · 0 评论 -
浅谈C中的malloc和free(转)
<br />在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用——就是 malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多,不过对于本文章第三部分的内容倒是有了转折性的认识,所以<br />写下这篇文章作为一个对知识的总结。这篇文章之所以命名中有个“浅谈”的字眼,也就是这个意思了!希望对大家有一点帮助!<br /> 如果不扯得太远的话(比如说操作系统中虚拟内存和物理内存如何运做如何管理之类的知转载 2011-05-26 10:11:00 · 434 阅读 · 0 评论 -
printf()格式化输出详解(转)
1 打印 char* psBuffer 1.1 字符for (i = 0; i { printf("kerStrStringToFloat 1 psSource[%d] %c\n", i, *(psBuffer+ i)); }1.2 字符串 printf("dStrToFloatN %s\n", psBuffer); 1.2 uchar* pc转载 2011-05-19 17:44:00 · 792 阅读 · 0 评论