- 博客(11)
- 收藏
- 关注
原创 结合回调函数介绍下泛型函数
其实泛型说白了,就是模板。泛型只不过是学称。先贴代码#ifndef _POINT__H_#define _POINT__H_typedef int (*Calc)(int,int);int Sub(int a,int b);int Minus(int a,int b);void MyPointFun(Calc fun,int a,int b);#endif/*_PO
2012-03-13 17:19:00
456
转载 GNU:gcc和g++区别
|字号 订阅gcc和g++都是GNU(组织)的一个编译器。 误区一:gcc只能编译c代码,g++只能编译c++代码 两者都可以,但是请注意: 1.后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的
2012-03-06 13:26:50
998
转载 互斥量和信号量的区别
1. 互斥量用于线程的互斥,信号量用于线程的同步。这是互斥量和信号量的根本区别,也就是互斥和同步之间的区别。互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必
2012-03-04 13:24:56
535
原创 strcpy、memcpy、memmove的区别及实现
关于这3个函数,其实很多地方都有说明。然而很多地方说明不够详尽,或者比较独立,或者很多地方的介绍就是错误的。我这两天仔细研究了下,给出我自己的一些研究结果。先看一下我自己的实现:char* strcpy(char* dst,const char* src){ char* rtn = NULL; if( (NULL!=dst)&&(NULL!=src) ){ rtn = d
2012-02-22 17:57:17
553
转载 C/C++语言void及void指针深层探索
1.概述 许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。 2.void的含义 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 void几乎只有“注释”和限制程序的作用,因为从
2012-02-22 17:17:23
395
原创 使用缺省的拷贝构造函数带来的危险性
我此前另外一篇文章通过类String看拷贝构造函数,赋值函数的作用和区别对于更深的拷贝构造函数讨论大家可以参见这篇帖子C++类对象的复制-拷贝构造函数通过编写类String的拷贝构造函数和赋值函数介绍了一些拷贝构造数.本文着重介绍拷贝构造函数的作用和重要性。首先介绍下拷贝构造函数的使用范围即作用:1) 一个对象以值传递的方式传入函数体;2) 一个对象以值传递
2012-02-19 15:49:54
2799
原创 通过类String看拷贝构造函数,赋值函数的作用和区别
/*如果不主动编写拷贝构造函数和赋值函数,编译器将以“位拷贝”的方式生成自动缺省函数.如果类中含有指针变量,这个缺省函数会带来错误.以类String的两个对象a,b为例,a.m_str内容是"hello",b.m_str的内容为"world".将a赋给b,缺省赋值函数的位拷贝意味着b.m_str=a.m_str,这样会发生如下3个错误:1. b.m_str的原有内存没有释放,造成内存泄露;
2012-02-19 10:55:29
3054
原创 模板类型函数和模板类,非类型模板类(2012-02-17 16:51)
本文结合代码综合介绍一下模板类型函数,模板参数类和非类型模板参数。其中一些内容源于网络和书籍,因为来源太散就没有全部标注出处。1. 模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Ove
2012-02-17 16:59:28
1114
原创 new/delete 和malloc/free 的区别(代码部分)
理论部分参见http://www.cppblog.com/Lee/archive/2009/03/09/75990.html//头文件#ifndef _NEWDELETE__H_#define _NEWDELETE__H_void TestMallocFree();void TestNewDelete();void TestNew();#endif//源文件#incl
2012-02-16 15:31:33
477
转载 模板函数的声明和定义都放在一个文件中
一个模板函数,把声明和定义分别放在.h文件和.cpp文件种,如果不调用这个函数的话,编译连接都能通过,但是如果调用这个函数的话,连接就有错误如下: --------------------Configuration: IRSEG - Win32 Release------------------ -- Compiling... Location.c
2012-02-13 21:09:50
2102
原创 设计模式之Bridge
趁着这两天工作不是非常紧,将一些基础知识整理一下。UML工具使用Enterprise Architect, 工程使用VC2008编译通过。先贴出类的关系:阐述:class CProductA继承自class Bridge, 具备其属性pIfc, 该属性是执行CIfOperator接口. C++不存在真正意义上的接口, 只是一个纯虚类;
2012-01-04 14:14:34
548
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人