C++语言
文章平均质量分 64
zhhymh
这个作者很懒,什么都没留下…
展开
-
在类的对象的初始化中为什么需要构造函数?
<br />//类需要构造函数<br /><br /> 类是一种抽象结构,而不是一种实体,并不占用存储空间。所以在定义类结构体的时候,是不可以对类中的成员进行初始化的。<br /> 例如以下的做法就是错误的:<br /> class student{<br /> name = " ";<br /> number = 0;<br /> score = 0;<br /> }<br /> 因为类型没有内存空间的,所以没有办法存放初始化的数据。<br /> 而类的对象不同,原创 2011-03-10 09:31:00 · 3125 阅读 · 0 评论 -
dynamic_cast---动态操作
dynamic_cast---动态操作 作用:将基类类型对象的引用或者指针转换为同意继承层次中其他类型的引用或者指针; 注意事项:dynamic_cast在运行时类型检查。分为两个操作:1.验证被请求的转换是否有效 2. 进行转换。 为什么验证工作必须在运行时检查? 答:因为引用或者指针绑定的对象的类型在编译时是未知的,基类的指针(或者引用)可以赋值为派生类对象。 利用C++ primer(4) 647页的例子: if (Derived *derivedPtr = dynamic_cast(ba原创 2011-03-10 11:56:00 · 647 阅读 · 0 评论 -
有关析构函数的心得
<br /><br /> 前面谈过构造函数,构造函数是用于类的对象初始化,完成初始化工作的。而析构函数和构造函数是<br /> 反向的,可以叫做“反向的构造函数”。主要的用处是:在类的对象被撤销(内存回收)时,自动调<br /> 用的。<br /> 析构函数的名称是:添加一个“~”符号,后面是类名,然后是(),例如 ~Item_base(){ }。析构<br /> 函数没有形参,没有返回值。所以析构函数是不可以重构的,一个类可以有很多的构造函数,但是只<br /> 有一个析构函数原创 2011-03-11 13:16:00 · 622 阅读 · 0 评论 -
为什么需要复制构造函数?
<br /><br /> 复制构造函数由编译器隐式调用 ,主要的用途 是:<br /> (1)根据另一个同类型的对象现实或隐式初始化一个对象;<br /> (2)复制一个对象,将它作为实参传给一个函数;<br /> (3)从函数返回时复制一个对象;<br /> (4)初始化顺序容器中的元素;<br /> (5)根据元素初始化式列表初始化数组元素;<br /><br /> 类类型对象的初始化:直接初始化和复制初始化<br /> 根据C++ primer P407页上的例子:<br />原创 2011-03-14 20:46:00 · 940 阅读 · 0 评论