C++
南宫伊枫
搞IT的人们伤不起
展开
-
C++中虚继承的作用
C++虚继承可以防止多重继承产生的二义性问题。 虚继承,就是在被继承的类前面加上virtual关键字,这时被继承的类称为虚基类,如下面代码中的base类。虚继承在多重继承的时可以防止二义性。 class base class derived1 : virutal public base class derived2 : virtual public原创 2016-01-25 13:03:40 · 423 阅读 · 0 评论 -
C++中一个class类对象占用多少内字节
一个空的class在内存中多少字节?如果加入一个成员函数后是多大?这个成员函数存储在内存中什么部分?一个Class对象需要占用多大的内存空间。最权威的结论是: *非静态成员变量总合。 *加上编译器为了CPU计算,作出的数据对齐处理。 *加上为了支持虚函数,产生的额外负担。介绍完了理论知识后,再看看再找一个例子看看(注:一下所有结果都是在VC6.0 开发环境中得出的结论)原创 2016-01-25 17:44:34 · 569 阅读 · 0 评论 -
C++ pair
Pair类型概述pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下: pair a;表示a中有两个类型,第一个元素是int型的,第二个元素是string类型的,如果创建pair的时候没有对其进行初始化,则调用默认构造函数对其初始化。 pair a("James", "Joy");也可以像上面一样在定义的时候直接原创 2016-03-15 17:05:02 · 331 阅读 · 0 评论 -
来谈谈C++ 位运算 & | << >> ^ ~ %
1.& 如果两个相应的二进制位都为1,则该位的结果值为1;否则为0。注:下面都用8位的 unsigned char 来做例子。 目录 [隐藏]&简单举例:&比较实用的例子:2. || 简单例子:| 比较实用的例子3. 4. >> 向右位移5. ^ 异或6 ~7 再扯下%8.位运算优先级&简单举例:原创 2016-04-15 14:24:13 · 307 阅读 · 0 评论 -
C/C++之回调函数
今天讨论下C/C++中的回调函数。 在理解“回调函数”之前,首先讨论下函数指针的概念。函数指针(1)概念:指针是一个变量,是用来指向内存地址的。一个程序运行时,所有和运行相关的物件都是需要加载到内存中,这就决定了程序运行时的任何物件都可以用指针来指向它。函数是存放在内存代码区域内的,它们同样有地址,因此同样可以用指针来存取函数,把这种指向函数入口地址的指针称为函数指针。(2原创 2016-04-29 11:14:21 · 4062 阅读 · 0 评论 -
#pragma once与#ifndef两种防止头文件二次编译的区别
在最开始接触到C语言的时候,看到很多大牛们写的代码里面就有#ifndef #define #endif 这三条语句,当时不明白什么意思,慢慢的后来自己也开始用了,也知道了他们合起来使用时为了防止头文件被二次编译,因为我们曾经写代码的过程中一定遇到过等类似的错误吧。到了学习C++的时候,我们老师给我们看他的代码的时候发现他的头文件里用的是#pragma once,就奇怪这是什么呢?然后私下原创 2016-04-20 13:41:31 · 269 阅读 · 0 评论 -
C/C++基本数据类型长度
熟知基本数据类型是我们正确表达实际问题中各种数据的前提,因此我分类总结了一下C/C++/Windows /C#基本数据类型,以便日后查阅。 ANSI C/C++基本数据类型:TypeSize数值范围无值型void0 byte无值域布尔型原创 2016-07-02 16:35:46 · 360 阅读 · 0 评论 -
C语言itoa()函数和atoi()函数详解(整数转字符C实现)
1.int/float to string/array:C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串,下面列举了各函数的方法及其说明。● itoa():将整型值转换为字符串。● ltoa():将长整型值转换为字符串。● ultoa():将无符号长整型值转换为字符串。● gcvt():将浮点型数转换为字符串,取四舍五入。● ecv原创 2016-08-22 11:41:59 · 965 阅读 · 0 评论