C++
文章平均质量分 55
Study_more
这个作者很懒,什么都没留下…
展开
-
C++虚函数学习笔记(仅供参考)
1、虚函数的作用:允许在派生类中重新定义与基类同名的函数,并且可以通过基类的指针或引用来访问基类和派生类中的同名函数。2、虚函数的工作原理编译器处理虚函数的方法:对每个对象添加一个隐藏成员。隐藏成员中保存了一个指向函数地址数组的指针,这种数组称为虚函数表(vtbl)。虚函数表中存储了为类对象进行声明的虚函数的地址。例如:基类对象包含一个指针,该指针指向基类中所有虚函数的地址表。原创 2012-04-05 21:56:22 · 1409 阅读 · 0 评论 -
内存管理一
今天突发奇想地想学习下内存管理(其实是报的腾讯终端开发,怕面试被问到如何实现内存管理模块)。于是找找资料,写了段代码,可以实现基于最佳适应法和循环首次适应法的内存分配。 大家都知道,我们malloc的时候操作系统维护着一张双链表记录堆里面的空闲内存块情况,每个节点对应一块内存。 最佳适应法:分配内存(大小为size)的时候,从表头开始搜索,找那块比size大的最小空闲内转载 2012-08-04 10:07:02 · 1485 阅读 · 0 评论 -
内存管理三
假设系统的可利用内存空间容量为2m个字(地址从0到2m-1),则在开始运行时,整个内存区是一个大小为2m的空闲块,在运行了一段时间之后,被分隔成若干占用块和空闲块。为了在分配时查找方便起见,我们将所有大小相同的空闲块建于一张子表中。每个子表是一个双重链表,这样的链表可能有m+1个,将这m+1个表头指针用向量结构组织成一个表,这就是伙伴系统中的可利用空间表,如图所示:转载 2012-08-04 10:08:38 · 1738 阅读 · 0 评论 -
STL set、multiset 学习笔记
一、set、multiset 的能力:set、multiset采用平衡二叉树完成,set中的元素不允许重复,multiset允许重复;set、multiset不提供直接存取元素的任何函数操作;通过iterator 进行元素简介存取,有一个限制:从迭代器角度来看,元素值是常数;二、set、multiset 的形式:set 一个set,以lessset一个set,以为排序原创 2012-07-25 15:41:50 · 4996 阅读 · 0 评论 -
类的设计
一、构造函数:简单的类不需要构造函数,它们的结构就是它们的接口。复杂的类需要构造函数来隐藏它们内部工作方式。二、数据成员:数据成员应该设置为私有,通过共有接口来修改、读取私有成员变量。如:template class Vector{public: int get_length() const; int set_length();private: int length;}原创 2012-08-03 18:35:00 · 2972 阅读 · 3 评论 -
单链表
#include #include typedef struct Student { int data; struct Student *next; }Node,*Link; void Display(Link L) { Node *p; p=L->next; printf("The result is:\n"); while(p) { printf原创 2012-07-23 11:09:19 · 1015 阅读 · 0 评论 -
C/C++中时间类time.h
关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元)1.概念在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。最近,在技术群中有很多网友也多次问到 过C++语言中对时间的操作、获取和显示等等的问题。下面,在这篇文章中,笔者将主要介绍在C/C++中时间和原创 2012-05-13 17:55:47 · 1554 阅读 · 0 评论 -
C语言随机数的产生
#include#include#includevoid main(){int i,j;srand((int)time(0));//设置种子for(i= 0;i{j=1+(int)(10.0*rand()/RAND_MAX+1.0);//显示随机数printf("%d\t",j);}}原创 2012-05-13 17:11:48 · 679 阅读 · 0 评论 -
在C语言中,double、long、unsigned、int、char类型数据所占字节数
和机器字长及编译器有关系:所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的): 1 sizeof(short int)<=sizeof(int) 2 sizeof(int)<=sizeof(long int) 3 short int至少应为16位(2字节) 4 long int至少应为32位。 unsigned 是原创 2012-04-23 13:23:29 · 2340 阅读 · 0 评论 -
C++标准库类型
C++标准库类型--学习笔记 一、命名空间的using声明usingstd::cin;usingstd::cout;usingstd::string; 二、标准库string类型1、string的类型和初始化几种初始化string对象的方式string s1;默认构造函数,s1为空串string s2(s1原创 2012-04-16 19:58:21 · 2267 阅读 · 0 评论 -
C++变量与基本类型
C++变量与基本类型---学习笔记 一、 从键盘输入文件结束符Windows系统:control+Z;Unix、OS-X、Mac:control+D; 二、 基本内置类型算数类型表 类型含义最小存储空间取值范围bool布尔型-原创 2012-04-13 15:23:07 · 3743 阅读 · 2 评论 -
C++迭代器(iterator)
1. 迭代器(iterator)是一中检查容器内元素并遍历元素的数据类型。(1) 每种容器类型都定义了自己的迭代器类型,如vector:vector::iterator iter;这条语句定义了一个名为iter的变量,它的数据类型是由vector定义的iterator类型。(2) 使用迭代器读取vector中的每一个元素:vector ivec(10,1);for(vector原创 2012-04-11 22:38:48 · 946 阅读 · 0 评论 -
多继承中二义性的问题
假定通过多个派生路径继承名为x的成员,有下面三种可能性:1、如果每个路径中x表示同一虚基类成员,则没有二义性,因为共享该成员的单个实例。2、如果在某个路径中x是虚基类的成员,而在另一路径中x是后代派生类的成员,也没有二义性--特定派生类实例的优先级高于共享基类实例。3、如果沿每个继承路径x表示后代派生类的不同成员,则该成员的直接访问时二义性的。像非虚多重继承层次一样,这种二义性最好用在原创 2012-04-08 11:18:43 · 2215 阅读 · 0 评论 -
C++纯虚函数与抽象类
纯虚函数:纯虚函数:在基类中将某一成员函数定为虚函数,并不是基类本身的需要,而是考虑到派生类的需要,在基类中预留了一个函数名,具体功能留给派生类根据需要去定义。纯虚函数是在声明虚函数时被“初始化”为0的函数。一般形式为:virtual 函数类型 函数名(参数列表)=0;如:virtual float area()const=0;注意:1、虚函数没有函数体;2原创 2012-04-06 11:28:03 · 4083 阅读 · 0 评论 -
内存管理二
发现两篇内存池的博文,博文地址如下,写的很好,能避免内存碎片和内存泄露问题,比我这个玩具代码要好很多,大家可以看看:http://www.cnblogs.com/bangerlee/archive/2011/08/31/2161421.htmlhttp://blog.csdn.net/060/article/details/1326025 在我们做转载 2012-08-04 10:07:55 · 1761 阅读 · 3 评论