C++
Steven___Wang
这个作者很懒,什么都没留下…
展开
-
C++ 取得系统当前时间
#include //* 方法一 time_t tt = time(NULL);//这句返回的只是一个时间cuo tm* t= localtime(&tt); printf("%d-%02d-%02d %02d:%02d:%02d\n", t->tm_year + 1900, t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec);转载 2015-01-29 15:42:55 · 707 阅读 · 0 评论 -
NULL和nullptr
NULL和nullptr0.NULL的前世今生对于C和C++程序员来说,一定不会对NULL感到陌生。但是C和C++中的NULL却不等价(别惊讶,这是真的)。NULL表示指针不指向任何对象,但是问题在于,NULL不是关键字,而只是一个宏定义(macro)。在C中,习惯将NULL定义为void*指针值0:1#define NULL (vo转载 2015-01-04 16:29:44 · 1251 阅读 · 0 评论 -
c++11特性与cocos2d-x 3.0之std::bind与std::function
昨天同事让帮忙写一小功能,才发现cocos2d-x 3.0 和 cocos2d-x 3.0rc0 差别还是相当大的。发现Label这一个控件,3.0就比rc0版本多了一个创建函数,更为关键的是3.0内的Label锚点是在ccp(0.5,0.5),而一直3.0rc0是ccp(0,0)。累觉不爱。尽管cocos2d-x改变太快,兼容性一次次的暴露出不足,但是,总归是向好的方向进行。于是转载 2015-01-04 16:53:33 · 611 阅读 · 0 评论 -
C++开发者都应该使用的10个C++11特性
C++开发者都应该使用的10个C++11特性在C++11新标准中,语言本身和标准库都增加了很多新内容,本文只涉及了一些皮毛。不过我相信这些新特性当中有一些,应该成为所有C++开发者的常规装备。你也许看到过许多类似介绍各种C++11特性的文章。下面是我总结的,C++开发者都需要学习和使用的C++11新特性。 auto在C++11之前,auto关键字用来转载 2015-02-11 14:03:48 · 514 阅读 · 0 评论 -
C++基础
1、标识符命名规则:(1)由英文字母、数字和下划线组成;(2)英文字母的大小要加以区别;(3)不允许使用数字开头;(4)不能用C++中的关键字。2、C++提供了 const 关键字声明常量,const 表示一个“常值变量”,即不能改变值的变量。3、4294967295是32为CPU寄存器以及Visual C++6.0编译器所允转载 2015-01-05 19:29:44 · 601 阅读 · 0 评论 -
C使用FILE指针文件操作
文件的基本概念 所谓“文件”是指一组相关数据的有序集合。 这个数据集有一个名称,叫做文件名。实际上在前面的各章中我们已经多次使用了文件,例如源程序文件、目标文件、可执行文件、库文件 (头文件)等。文件通常是驻留在外部介质(如磁盘等)上的,在使用时才调入内存中来。从不同的角度可对文件作不同的分类。从用户的角度看,文件可分为普通文件和设备文件两种。 普通文件是指驻留在磁盘或其它外部介质转载 2015-01-06 09:47:33 · 783 阅读 · 0 评论 -
do...while(0)的妙用
在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。1. do...while(0)消除goto语句。通常,如果在转载 2015-02-14 15:57:10 · 528 阅读 · 0 评论 -
C++类的内存地址存放问题
转自 http://hi.baidu.com/lovestartian/item/5e10f99e1b1faedb1e4271a3了解C++类地址的存放和分配等问题,能帮助我们更深入、更清晰了解类的组成及其使用。自己目前不是很清楚,先收集一些网上资料,而后再慢慢补充增加的了解...//-------------------------------------------网络转载 2015-03-25 15:02:57 · 2354 阅读 · 0 评论 -
C/C++ 笔试、面试题目大汇总
1.求下面函数的返回值( 微软)int func(x) { int countx =0; while(x) { countx ++; x = x&(x-1); } return countx; }假定x = 9999。 答案:8思路:将x转化为2进制,看含有的1的个数。 2. 什么是“引用”?申明和使用“引用”转载 2015-03-17 15:03:34 · 571 阅读 · 0 评论 -
深入 char * ,char ** ,char a[ ] ,char *a[] 内核
C语言中由于指针的灵活性,导致指针能代替数组使用,或者混合使用,这些导致了许多指针和数组的迷惑,因此,刻意再次深入探究了指针和数组这玩意儿,其他类型的数组比较简单,容易混淆的是字符数组和字符指针这两个。。。下面就开始剖析一下这两位的恩怨情仇。。。 1 数组的本质 数组是多个元素的集合,在内存中分布在地址相连的单元中,所以可以通过其下标访问不同单元的元素。。 2 指针。转载 2015-03-18 09:23:09 · 365 阅读 · 0 评论 -
C/C++ 笔试、面试题目大汇总2
一.找错题试题1:void test1(){ charstring[10]; char* str1 ="0123456789"; strcpy( string, str1 );} 试题2:void test2(){ charstring[10],str1[10]; int i; for(i=0; i10; i++)转载 2015-03-17 15:02:34 · 482 阅读 · 0 评论 -
C++函数模板详解
经常有碰到函数模块的应用,很多书上也只是略有小讲一下,今天又狂碰到函数模块,无奈特地找来C++编程经典>翻阅一遍,终于有所全面了解.....C++函数模块基础知识:一. 问题:强类型语言要求我们为所有希望比较的类型都实现一个实例int min( int a, int b ) {return a }double min( double a, double b ) {转载 2015-05-27 20:32:04 · 644 阅读 · 1 评论 -
C++模板学习
1. 模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y);{return(x>y)?x:y ;}//函数2.float转载 2015-05-27 20:48:56 · 575 阅读 · 0 评论 -
C/C++中extern关键字详解
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数转载 2015-05-31 14:27:31 · 457 阅读 · 0 评论 -
C++中的virtual
参考资料:http://www.programfan.com/article/2782.html作为通常的原则,如果一个类定义了虚函数,那么它的析构函数就应当是virtual的。因为定义了虚函数则隐含着:这个类会被继承,并且会通过基类的指针指向子类对象,从而得到多态性。”,因此基类的析构函数是否为虚将决定子类的对象是否被析构。虚函数是C++中用于实现多态(polymorphism)的机制。转载 2015-06-04 10:04:31 · 615 阅读 · 0 评论 -
【C++11】新特性——auto的使用
C++11中引入的auto主要有两种用途:自动类型推断和返回值占位。auto在C++98中的标识临时变量的语义,由于使用极少且多余,在C++11中已被删除。前后两个标准的auto,完全是两个概念。1. 自动类型推断 auto自动类型推断,用于从初始化表达式中推断出变量的数据类型。通过auto的自动类型推断,可以大大简化我们的编程工作。下面是一些使用auto的例子。转载 2015-01-05 09:54:22 · 644 阅读 · 0 评论 -
c++回调函数 callback
C++中实现回调机制的几种方式(1)Callback方式Callback的本质是设置一个函数指针进去,然后在需要需要触发某个事件时调用该方法, 比如Windows的窗口消息处理函数就是这种类型。比如下面的示例代码,我们在Download完成时需要触发一个通知外面的事件:[cpp] view plaincopytypedef voi转载 2015-02-11 14:13:40 · 840 阅读 · 0 评论 -
C++ 拷贝构造函数 赋值构造函数
C++ 拷贝构造函数 赋值构造函数拷贝构造函数和赋值构造函数的异同由于并非所有的对象都会使用拷贝构造函数和赋值函数,程序员可能对这两个函数有些轻视。请先记住以下的警告,在阅读正文时就会多心:如果不主动编写拷贝构造函数和赋值函数,编译器将以“位拷贝”的方式自动生成缺省的函数。倘若类中含有指针变量,那么这两个缺省的函数就隐含了错误。以类String 的两个对象a,b 为例,假设a.m_da转载 2015-01-31 14:52:35 · 535 阅读 · 0 评论 -
C++高效编程忠告
转自http://www.cppblog.com/mzty/archive/2007/07/19/28359.html这是对C++高效编程的一个总结, 很有指导作用. 一、#include “filename.h”和#include 的区别 #include “filename.h”是指编译器将从当前工作目录上开始查找此文件 #include 是指编译器将从标准库目录中开始查找转载 2015-01-31 14:44:53 · 497 阅读 · 0 评论 -
单例模式——C++实现自动释放单例类的实例
C++编程语言是一个应用广泛的计算机应用语言,它功能强大,在一定程度上大大提高了程 序开发效率。C++单例模式也称为单件模式、单子模式。使用单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共 享。有很多地方需要这样的功能模块,如系统的日志输出等。单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做到这一点,但这样的代码显得很不优雅。定义一个转载 2015-01-30 14:05:06 · 1185 阅读 · 0 评论 -
C++中的函数指针和函数对象总结
篇一、函数指针函数指针:是指向函数的指针变量,在C编译时,每一个函数都有一个入口地址,那么这个指向这个函数的函数指针便指向这个地址。函数指针的用途是很大的,主要有两个作用:用作调用函数和做函数的参数。函数指针的声明方法:数据类型标志符 (指针变量名) (形参列表);一般函数的声明为: int func ( int x );而一个函数指针的声明方法为:int (*fu转载 2014-12-26 10:30:58 · 570 阅读 · 0 评论 -
C++11 FAQ中文版:std::function 和 std::bind
Year 2011陈 良乔C++11 FAQstd::function 和 std::bind标准库函数bind()和function()定义于头文件中(该头文件还包括许多其他函数对象),用于处理函数及函数参数。bind()接受一个函数(或者函数对象,或者任何你可以通过”(…)”符号调用的事物),生成一个其有某一个或多个函数参数被“绑定”或重新组织的函数对象。(译注:顾名思义,转载 2014-12-26 11:00:07 · 567 阅读 · 0 评论 -
C/C++中的void和void*
C/C++中的void和void*C/C++中的void和void*一、voidvoid关键字表示“空类型”的概念。但是,这里的“空类型”不表示“任意类型”,而是表示不存在的意思,也就是说C/C++不允许你写语句void a,不存在类型为void的东西.void表示“不存在”的意思,可以从void的两个应用中加以体现:1、void作为函数的返回值类型时,转载 2014-12-26 14:13:04 · 727 阅读 · 0 评论 -
string替换所有指定字符串(C++)
C++的string提供了replace方法来实现字符串的替换,但是对于将字符串中某个字符串全部替换这个功能,string并没有实现,我们今天来做的就是这件事。首先明白一个概念,即string替换所有字符串,将"12212"这个字符串的所有"12"都替换成"21",结果是什么?可以是22211,也可以是21221,有时候应用的场景不同,就会希望得到不同的结果,所以这两种答案都做了实现,代码转载 2015-01-15 16:56:58 · 3892 阅读 · 0 评论 -
C++内存管理——指针&&数组
C++/C程序中,指针和数组在不少地方可以相互替换着用,让人产生一种错觉,以为两者是等价的。但二者有着本质的区别:数组:要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针:可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。指针远比数组灵活,但也更危险。下转载 2014-12-26 14:37:40 · 686 阅读 · 0 评论 -
内存分配 指针和数组对比
内存分配方式 在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去转载 2014-12-26 14:50:47 · 565 阅读 · 0 评论 -
char *s 和 char s[] 的区别小结
最近的项目中有不少c的程序,在与项目新成员的交流中发现,普遍对于char *s1 和 char s2[] 认识有误区(认为无区别),导致有时出现“难以理解”的错误。一时也不能说得很明白,网上也搜了一下相关文章发现一些写的比较好的,综合了一下当教育资料备用。 char *s1 = "hello";char s2[] = "hello"; 【区别所在】cha转载 2014-12-26 15:06:06 · 895 阅读 · 0 评论 -
写出float x 与“零值”比较的if语句——一道面试题分析
写出float x 与“零值”比较的if语句请写出 float x 与“零值”比较的 if 语句: const float EPSINON = 0.00001; if ((x >= - EPSINON) && (x 不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“EPSINON应该是一个很小的值吧 因为计算机在处理浮点数的时候是有误差的转载 2015-02-04 16:03:53 · 835 阅读 · 0 评论 -
C/C++基本数据类型
C/C++语言有一组基本类型,对应于计算机的基本存储单元和使用这些单元去保存数据的一些常用方式:基本数据类型如下:NameDescriptionSize*Range*charCharacter or small integer.1bytesigned: -128 to 127unsigned: 0 to 255转载 2015-02-04 17:54:45 · 681 阅读 · 0 评论 -
局部变量,静态局部变量,全局变量,静态全局变量在内存中的存放区别(转)
下面有几种网上的理解,我整理一下:一: 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由os回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储转载 2015-02-04 16:15:20 · 546 阅读 · 0 评论 -
浅谈 C++ 中的 new/delete 和 new[]/delete[]
在 C++ 中,你也许经常使用 new 和 delete 来动态申请和释放内存,但你可曾想过以下问题呢?new 和 delete 是函数吗?new [] 和 delete [] 又是什么?什么时候用它们?你知道 operator new 和 operator delete 吗?为什么 new [] 出来的数组有时可以用 delete 释放有时又不行?…如果你对这些问题都有疑问的话,转载 2015-07-02 11:33:21 · 504 阅读 · 0 评论