C++
文章平均质量分 80
fxwzzbd
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
虚拟函数表(Virtual Table)
1. 虚拟函数表其实就是一个存放指针的指针数组,它里面有一个或者是多个指针,而每一个指针都指向一个虚函数,通过它可以知道虚函数的地址。2. 一个类或是接口,如果声明有虚函数,那么它们就会带有VirtualTable,而它们实例化的Object也会相应的含有一个vptr(一个指向Virtual Table的指针,位于Object的开始位置),用于类对原创 2007-09-26 11:48:00 · 3088 阅读 · 0 评论 -
容器之vector
vector容器类:#include std::vector MyVector;作为vector的元素,要求元素能够进行赋值和拷贝操作,即元素类型拥有赋值运算符和拷贝构造函数,如果元素类型是用户自定义类型,operator=和拷贝构造函数可以是用户定义的,也可以是编译器自动生成的。(注意编译器产生的有可能引发错误,例如类型的成员包含指针就有可能引起错误)。vector的特征:1.支原创 2008-04-19 20:32:00 · 1330 阅读 · 1 评论 -
结构体大小问题
关于结构体大小的问题:typedef struct AA{int b1:5;int b2:2;}AA;sizeof(AA)==4;我想知道是为什么,有没有人知道?结果是4,我已经在vc下验证了。b1=5 bit , b2= 2bit。为什么加起来有4字节。而且这个b1,b2是按位分配的================因为两个都是int,所以类型相同,后面的字段就填充前一个字段直到不可以转载 2008-03-05 14:57:00 · 1175 阅读 · 0 评论 -
Programfan
从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。 ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:ASC码: 00110101 00110110 00110111 00111000 ↓ ↓ ↓ ↓十进制码: 5 6 7转载 2008-03-05 14:48:00 · 686 阅读 · 0 评论 -
什么是野指针?
野指针,也就是指向不可用内存区域的指针。通常对这种指针进行操作的话,将会使程序发生不可预知的错误。 “野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。野指针的成因主要有两种: 一、指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指转载 2008-02-29 16:10:00 · 1146 阅读 · 0 评论 -
c++ static
1。变量为static时,它的生存期为整个程序的生存期,从程序开始时分配空间,到程序结束时释放。2。变量为static时,具有内部联接性,只在声明它的文件中可见,在一个函数中定义static变量,则它的范围为函数所在的整个文件,而并不局限于此函数范围。3。在函数内部,变量为static时,调用函数时它将保持状态不变,在循环体中也一样保持状态不变。4。如果类中的数据成员为static,所有类对象共享原创 2007-10-02 02:35:00 · 714 阅读 · 0 评论 -
理解C++编译器为我们做的隐蔽类型转换
导致编译器做出隐蔽类型转换的两种情况:1.使用单参数构造函数来进行implicit type convertions什么是单参数构造函数?单参数构造函数是指调用构造函数时只传入一个参数。下面是单参数构造函数的两个例子:class Name { // for names of thingspublic: Name(const stri原创 2007-10-03 10:39:00 · 963 阅读 · 0 评论 -
c++ const
1.const的使用:使用的两种形式:const declaration ;变量定义使用const必须进行初始化member-function const ;当const修饰类成员函数时限制该成员函数修改调用它的类对象。一些例子:const char *p = "Hello"; // non-const pointer,原创 2007-10-02 02:37:00 · 800 阅读 · 0 评论 -
成员函数 非成员函数 友元函数
1.成员函数与非成员函数主要区别是:成员函数可以是虚拟的,而非成员函数则不能。2.operator>> and operator看下面的例子,将operator>> and operator// a class that incorrectly declares operator>> and// operatorclass String {public: String(const char原创 2007-10-02 22:48:00 · 1627 阅读 · 0 评论 -
析构函数
一般情况下类的析构函数里面都是释放内存资源,而析构函数不被调用的话就会造成内存泄漏。当构造函数中使用了new,那么析构函数则使用delete。析构函数不带任何参数,不返回任何东西(译注:void也不行)。基类的析构函数一般设计成虚函数 是为了当用一个基类的指针删除一个派生类的对象时,派生类的析构函数会被调用。并不是要把所有类的析构函数都写成虚函数。因为当类里面有虚函数的时候,编译器原创 2007-09-26 11:28:00 · 712 阅读 · 0 评论 -
C++引用
引用简介 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。 引用的声明方法:类型标识符 &引用名=目标变量名; 【例1】:int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名 说明: (1)&在此不是求地址运算,而是起标识作用。 (2)类型标识符是指目标变量的类型。 (3)声明引用时,必须同时对其进行初始转载 2007-09-26 15:18:00 · 700 阅读 · 0 评论 -
#ifdef #ifndef extern "c"与头文件
RemarksThe extern keyword declares a variable or function and specifies that it has external linkage (its name is visible from files other than the one in which its defined). When modifying a variabl转载 2007-09-26 14:32:00 · 1420 阅读 · 0 评论 -
面向对象、基于对象和面向过程
很多人没有区分“面向对象”和“基于对象”两个不同的概念。面向对象的三大特点(封装,继承,多态)缺一不可。通常“基于对象”是使用对象,但是无法利用现有的对象模板产生新的对象类型,继而产生新的对象,也就是说“基于对象”没有继承的特点。而“多态”表示为父类类型的子类对象实例,没有了继承的概念也就无从谈论“多态”。现在的很多流行技术都是基于对象的,它们使用一些封装好的对象,调用对象的方法,设置对象的属性。转载 2007-09-26 11:58:00 · 1088 阅读 · 0 评论 -
STL容器类
第六章、STL容器1.当容器插入元素时将调用元素的拷贝构造函数,因此如果对我们自定义的类型使用容器,应该为自定义 类型提供拷贝构造函数,如果没有提供编译器将为我们自动生成一个拷贝构造函数,当在容器中插入自 定义类型元素时,将调用编译器生成的拷贝构造函数。容器类的共有操作:初始化操作:ContType c; 创建一个没有任何元素的空容器。ContType c1(c原创 2008-04-19 20:29:00 · 955 阅读 · 0 评论
分享