代码改变世界

随笔分类 -  C++相关

C++中关于指针初始化和使用NULL的理解

2014-12-04 12:38 by itwolf, 10861 阅读, 收藏,
摘要: 1、严禁使用未被初始化的指针:C++创建指针的时候,只分配存储地址的内存,并不会分配存储数据的内存,所以指针可能指向任何位置。 (1)使用解除运算符(*)之前,一定要对指针初始化,否则若声明的指针刚好指向程序代码的位置会导致一些很隐蔽的错误。 (2)未被初始化之前禁止指针之间的赋值。例如:#incl... 阅读全文

(虚)继承类的内存占用大小

2014-12-01 09:06 by itwolf, 773 阅读, 收藏,
摘要: (虚)继承类的内存占用大小首先,平时所声明的类只是一种类型定义,它本身是没有大小可言的。 因此,如果用sizeof运算符对一个类型名操作,那得到的是具有该类型实体的大小。计算一个类对象的大小时的规律: 1、空类、单一继承的空类、多重继承的空类所占空间大小为:1(字节,下同); 2、一个类中,虚函数本... 阅读全文

为什么构造函数不能为虚函数

2014-11-30 10:08 by itwolf, 298 阅读, 收藏,
摘要: 1、从使用角度 虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用。构造函数本身就是要初始化实例,那使用虚函数也没有实际意义呀。所以构造函数没有必要是虚函数。虚函数的作用在于通过父类的指针或者引用来调用它的时候能够变成调用子类的那个成员函数。而构造函数是在创建对象时自动调用的,不可能通过... 阅读全文

C++中变量自动初始化的问题

2014-11-28 10:51 by itwolf, 3400 阅读, 收藏,
摘要: C++中有一些变量在如果没有赋初值会被编译器自动赋值为0,但有的变量又不会这样,而得到一个随机数,下面具体讨论一下:首先看一下C++中的几个存储区:1、栈区:由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区:一般由程序员分配释放, 若程序员不释放,... 阅读全文