
C++,C
文章平均质量分 60
rioalian
这个作者很懒,什么都没留下…
展开
-
抽象类与纯虚函数
纯虚函数是一种特殊的虚函数,它的一般格式如下: class { virtual ()=0; … }; 在许多情况下,在基类中不能对虚函数给出有意义有实现,而把它说明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。下面给出一个纯虚函数的例子。 #include class point转载 2017-08-15 22:07:53 · 603 阅读 · 0 评论 -
c++虚函数经典例子演示
c++博大精深,封装,继承,多态是c++的三大特征,c++很强大,但是强大的东西理解起来就是要比不强大的难一点,所以现在看看c++的多态:多态条件:1.必须是公有继承。2.必须是虚函数一个好的程序要对修改封闭,对扩展开放,虚函数就能很好的解决这个问题,基类的指针指向子类的对象并调用子类的同名函数,要实现这种效果,就得用虚函数关键字:virtu转载 2017-07-18 17:26:32 · 480 阅读 · 0 评论 -
开发者都应该使用的10个C++11特性
摘要: 在C++11新标准中,语言本身和标准库都增加了很多新内容,本文只涉及了一些皮毛。不过我相信这些新特性当中有一些,应该成为所有C++开发者的常规装备。你也许看到过许多类似介绍各种C++11特性的文章。下面是我总结的,C++开发者都需要学习和使用的C++11新特性。auto 在C++11之前,auto关键字用来指定存储期。在新标准中,它的功能变为类型推断。auto现在成了转载 2017-07-19 10:24:16 · 198 阅读 · 0 评论 -
C++std命名空间详解
原文链接:http://qiusuoge.com/9811.html1. 什么是命名空间在编程语言中,命名空间是一种特殊的作用域,它包含了处于该作用域中的所有标示符,而且其本身也是由标示符表示的。命名空间的使用目的是为了将逻辑相关的标示符限定在一起,组成相应的命名空间,可使整个系统更加模块化,最重要的是它可以防止命名冲突。就好比在两个函数或类中定义相同名字的对象一样,利用作用域标示转载 2017-07-19 10:16:48 · 4400 阅读 · 0 评论 -
sprintf
原文链接:http://www.cnblogs.com/daocaoren/archive/2011/06/22/2087096.html在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。转载 2017-07-19 10:08:53 · 281 阅读 · 0 评论 -
C++ function、bind以及lamda表达式
原文链接:http://blog.youkuaiyun.com/hongjunbj/article/details/88913871. function 我们知道,在C++中,可调用实体主要包括函数,函数指针,函数引用,可以隐式转换为函数指定的对象,或者实现了opetator()的对象(即C++98中的functor)。C++0x中,新增加了一个std::function对象,std::fu转载 2017-07-19 10:02:40 · 215 阅读 · 0 评论 -
C++ class和struct的区别
原文链接:http://c.biancheng.net/cpp/biancheng/view/2982.htmlC++ 中保留了C语言的 struct 关键字,并且加以扩充。在C语言中,struct 只能包含成员变量,不能包含成员函数。而在C++中,struct 类似于 class,既可以包含成员变量,又可以包含成员函数。C++中的 struct 和 class 基本是通用的,唯有几个转载 2017-07-19 09:59:34 · 304 阅读 · 0 评论 -
C++中的static关键字的总结
原文链接:http://www.cnblogs.com/BeyondAnyTime/archive/2012/06/08/2542315.htmlC++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。1.面向过程设计中的static1.1静态全局变量在全局转载 2017-07-19 09:44:09 · 160 阅读 · 0 评论 -
C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
原文链接:http://www.cnblogs.com/daocaoren/archive/2011/06/29/2092957.html 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收转载 2017-07-19 09:38:42 · 176 阅读 · 0 评论 -
const常量与define宏定义的区别
原文链接:http://www.examw.com/biancheng/c/199269/1) 编译器处理方式不同 define宏是在预处理阶段展开。 const常量是编译运行阶段使用。 (2) 类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开。 const常量有具体的类型,在编译阶段会执行类型检查。 (3) 存储方式不同 de转载 2017-07-19 09:16:13 · 215 阅读 · 0 评论 -
IOS中的Block与C++11中的lambda
原文链接:http://www.cnblogs.com/imystr/archive/2014/08/14/3912642.html ios中的block 可以说是一种函数指针,但更确切的讲,其实际上其应该算是object-c对C++11中lambda的支持或者说是一个语言上的变体,其实际内容是一样的,C++的lambda我已经有简介过,现在说下ios中的blockBlock的转载 2017-07-19 10:39:26 · 538 阅读 · 0 评论 -
C++中的运算符和运算符优先级总结
原文链接:http://www.jb51.net/article/83857.htm运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C++ 内置了丰富的运算符,并提供了以下类型的运算符:算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符本文将逐一介绍算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和其他运算符。算术运算符下表显示了转载 2017-07-22 15:34:13 · 1444 阅读 · 0 评论 -
C++精进篇继承及经典示例
继承是C++的重要属性: 在C++中有: 公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。1. 公有继承(public)公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,不能被这个派生类的子类所访问。2. 私有继转载 2017-07-24 09:51:05 · 365 阅读 · 0 评论 -
C++异常处理assert,throw,exit用法
assert应用: 在现实世界中,我们脑袋时刻都在判断对与错,对的事情我们会继续深入下去,而错的事情我们会马上停止,那么在编程开发中我们如何赋予程序这种判断事物对错的能力呢?其中一个方案就可以使用断言assert,我们最常用的地方就是在函数中检查形参的数据合法性。1、函数所属头文件: assert.h2、函数原型: void assert转载 2017-08-25 11:29:10 · 702 阅读 · 0 评论 -
C语言常用转义字符表 和 ASCII码表完整版
原文链接:http://blog.youkuaiyun.com/abc5382334/article/details/13997005C语言常用转义字符表 和 ASCII码表完整版 ASCII值控制字符 ASCII值控制字符 ASCII值控制字符 ASCII值控制字符 0转载 2017-07-27 22:53:10 · 5210 阅读 · 0 评论 -
memset memcpy使用
memset需要的头文件在C中 在C++中 函数介绍void *memset(void *s, int ch, size_t n);函数解释:将 s 中前 n 个字节 (typedef unsigned int size_t)用 ch 替换并返回 s 。memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法[1]。转载 2017-08-17 13:59:55 · 2573 阅读 · 0 评论 -
c++单例模式
class FingerprintHelper{ private: FingerprintHelper(); virtual ~FingerprintHelper(); staticFingerprintHelper* s_FingerprintHelper;转载 2017-07-26 10:01:45 · 186 阅读 · 0 评论 -
sizeof strlen
Sizeof与Strlen的区别与联系(转)1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。 2.sizeof是算符,strlen是函数。 3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。sizeof还可以用函数做参数,比如:转载 2017-07-22 15:39:08 · 229 阅读 · 0 评论 -
C++之菱形继承
原文链接:http://blog.youkuaiyun.com/monamokia/article/details/51537312当我们谈C++时,我们谈些什么? 封装,继承,多态。这是C++语言的三大特性,而每次在谈到继承时我们不可避免的要谈到一个很重要的问题——菱形继承。a.菱形继承是什么 如上图,菱形继承即多个类继承了同一个公共基类,而这些派生类又同时被一个类继承转载 2017-07-24 23:01:36 · 248 阅读 · 0 评论 -
char 和 unsigned 与int 之间的转换
预备知识:整数在计算机中的表示整数在计算机中是以二进制补码的方式表示的,以int型为例:int有4个字节,最高位为符号位,即正数为0xxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx b ,例如:[java] view plain copy"font-size:18px;">int n = 3;转载 2017-07-24 16:46:02 · 12812 阅读 · 0 评论 -
十进制负数转换成二进制数的方法
计算机中一般用补码来表示,若对于补码有不清楚之处请参考http://baike.baidu.com/view/377340.htm负数转换为二进制,就是将其相反数(正数)的补码的每一位变反(1变0,0变1)最后将变完了的数值加1,就完成了负数的补码运算。这样就变成了二进制。举个例子:将-1变成二进制。①首先确定二进制的位数,假定为16位,即可以表示-32768到32767的所有转载 2017-07-24 16:35:44 · 4527 阅读 · 2 评论 -
unsigned/signed int/char类型表示的数值范围
一个32位的signed int类型整数表示的范围:-2^31~2^31-1一个32位的unsigned int类型整数表示的范围: 0~2^32-1 一个8位的signed char类型整数表示的范围:-2^7~2^7-1一个8位的unsigned char类型整数表示的范围: 0~2^8-1转载 2017-07-24 16:34:47 · 7989 阅读 · 0 评论 -
析构函数什么情况下要定义为虚函数?
原文地址:http://blog.sina.com.cn/s/blog_7c773cc50100y9hz.html1.第一段代码#includeusing namespace std;class ClxBase{public: ClxBase() {}; ~ClxBase() {cout void DoSomething() { co转载 2017-07-18 17:16:50 · 172 阅读 · 0 评论 -
C程序编译过程浅析
其实编译(包括链接)的命令:gcc hello.c 可分解为如下4个大的步骤:预处理(Preprocessing)编译(Compilation)汇编(Assembly)链接(Linking)gcc compilation 1. 预处理(Preproceessing)预处理的过程主要处理包括以下过程:转载 2017-07-18 11:12:01 · 198 阅读 · 0 评论 -
C++函数重定义、重载、重写
http://www.cnblogs.com/BeyondTechnology/archive/2010/09/20/1831441.html1. 重写 (override): 父类与子类之间的多态性。子类重新定义父类中有相同名称和参数的虚函数。 1) 被重写的函数不能是 static 的。必须是 virtual 的 ( 即函数在最原始的基类中被声明为 vi转载 2017-07-18 10:32:48 · 376 阅读 · 0 评论 -
for循环的简介及break和continue的区别
原文链接:http://blog.youkuaiyun.com/abc5382334/article/details/173083751.for循环for循环是更加简洁的循环语句,大部分情况下,for循环可以代替while循环、do-while循环。for循环的格式为:for( 初始语句 ; 执行条件 ; 增量 ){转载 2017-07-21 11:34:25 · 339 阅读 · 0 评论 -
c语言那些细节之a+1和&a+1的区别
原文链接:http://blog.youkuaiyun.com/eastmoon502136/article/details/8630790首先a是一个数组名,当看到这个a与&a时,一般我们的理解都是这个数组的首地址。没错,如果加上打印的话,确实两个值是一样的。不过&a是整个数组的首地址,a则是数组首元素的地址,虽然值一样,但是意义却不相同。在此之前有必要先看下c程序在内存中的分布转载 2017-07-21 10:07:35 · 2476 阅读 · 0 评论 -
字符数组和字符串,char 和string定义的字符串的区别与遍历
原文链接:http://blog.youkuaiyun.com/mikedadong/article/details/53047500字符数组:存储字符的数组字符串 :是使用最频繁的字符数组,是一个特殊的字符数组C++中并没有专门的字符串的类型,一个字符串实际上就是一个字符数组,与普通字符数组不同的是,字符串的结尾有一个字符\0,表示字符串的结束。char 可以定义字符数组,也转载 2017-07-20 14:11:04 · 501 阅读 · 0 评论 -
C/C++基本数据类型所占字节数
关于这个基本的问题,很早以前就很清楚了,C标准中并没有具体给出规定那个基本类型应该是多少字节数,而且这个也与机器、OS、编译器有关,比如同样是在32bits的操作系统系,VC++的编译器下int类型为占4个字节;而tuborC下则是2个字节。所以int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的):siz转载 2017-07-20 14:04:45 · 873 阅读 · 0 评论 -
C++中引用(&)的用法和应用实例
原文链接:http://www.cnblogs.com/Mr-xu/archive/2012/08/07/2626973.html对于习惯使用C进行开发的朋友们,在看到c++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的办法。在 c++学习提高篇(3)---隐式指针的文章中我转载 2017-07-20 14:42:39 · 171 阅读 · 0 评论 -
C++ 引用的作用和用法
原文链接:http://www.cnblogs.com/xiaofengkang/archive/2011/05/16/2048262.html我的总结:引用的好处之一就是在函数调用时在内存中不会生成副本。引用总结(1)在引用的使用中,单纯给某个变量取个别名是毫无意义的,引用的目的主要用于在函数参数传递中,解决大块数据或对象的传递效率和空间不如意的问题。(2)用引用传递函数转载 2017-07-20 14:46:23 · 730 阅读 · 0 评论 -
C++中 引用&与取地址&的区别
一个是用来传值的 一个是用来获取首地址的&(引用)==>出现在变量声明语句中位于变量左边时,表示声明的是引用. 例如: int &rf; // 声明一个int型的引用rf.&(取地址运算符)==>在给变量赋初值时出现在等号右边或在执行语句中作为一元运算符出现时 表示取对象的地址. 在C++中,既有引用又有取地址,好多人对引用和取转载 2017-07-21 09:43:42 · 193 阅读 · 0 评论 -
C++ 值传递、指针传递、引用传递详解
最近写了几篇深层次讨论数组和指针的文章,其中提到了“C语言中,所有非数组的形式参数传递均以值传递形式”数组和指针背后——内存角度语义"陷阱"---数组和指针而关于值传递,指针传递,引用传递这几个方面还会存在误区, 所有我觉的有必要在这里也说明一下~下文会通过例子详细说明哦值传递:形参是实参的拷贝,改变形参的值并不会影响外部实参的值。从被调用函数的角度转载 2017-07-20 14:30:34 · 181 阅读 · 0 评论 -
C指针详解(经典,非常详细)
分类:● 【C/C++】(6) 目录(?)[-]前言复杂类型说明一细说指针指针的类型指针所指向的类型指针的值----或者叫指针所指向的内存区或地址指针本身所占据的内存区二指针的算术运算三运算符和四指针表达式五数组和指针的关系六指针和结构类型的关系七指针和函数的关系八指针类型转换九指针的安全问题前言:复杂类型说明 要了解指针,转载 2017-07-20 13:44:37 · 759 阅读 · 0 评论 -
指针函数与函数指针的区别
原文链接:http://nevel.cnblogs.com/p/6370264.html在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,最简单的辨别方式就是看函数名前面的指针*号有没有被括号()包含,如果被包含就是函数指针,反之则是指针函数。今天我们从头把它搞清楚 首先它们之间的定义: 1、指针函数是指带指针的函数,即本质是一个函数,转载 2017-07-22 15:34:44 · 182 阅读 · 0 评论 -
sizeof(数组名)和sizeof(指针)
原文链接:http://blog.youkuaiyun.com/kangroger/article/details/20653255在做这道题时:32位环境下,int *p=new int[10];请问sizeof(p)的值为()A、4 B、10 C、40 D、8我以为正确答案为C,int类型为32位,占四转载 2017-07-22 15:41:29 · 296 阅读 · 0 评论 -
cocos2d-c++ 添加iOS广告sdk遇到的问题(inmobile)
个人经验文档:http://blog.youkuaiyun.com/Henry_moneyBag/article/details/50962530官方文档:https://www.inmobi.com/portal/#support/listing/pType=1;pid=1475943661272;platform=IOS;siteId=8983bf74c23a444bac432c3ab62bec1b原创 2016-10-28 16:22:05 · 1570 阅读 · 0 评论 -
new/delete和malloc/free的区别
还是先说说区别吧: 1. new/delete是C++里才有的,而new/delete与malloc/free一个显著的区别在于,new是建造一个对象,并调用对象的构造函数来初始化对象,其实在所有的new操作过程中,总是分为两步的:第一步是申请内存,第二步则是调用构造函数初始化对象。同样,在调用delete的时候,需要先调用析构函数,然后在销毁堆内存。 2. new/delet转载 2017-07-17 16:26:47 · 234 阅读 · 0 评论 -
C++中的static关键字的总结
转自:http://www.cnblogs.com/BeyondAnyTime/archive/2012/06/08/2542315.html C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。1.面向过程设计中的static1.1静态全局变量在全局变转载 2017-07-17 15:42:16 · 158 阅读 · 0 评论 -
C/C++中extern关键字详解
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而转载 2017-07-17 15:37:06 · 153 阅读 · 0 评论