注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

好好工作

要记得学习期间一定要谦卑才能学到真本事

 
 
 

日志

 
 

C++构造函数、析构函数 知识点  

2015-03-15 22:04:35|  分类: C++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
构造函数:
    1.专门用于对象初始化的函数
    2.构造函数是与类名相同,在建立对象时被系统自动调用的函数,如果在定义类时,没有为类定义构造函数,编译系统就生成一个默认形式的隐含的构造函数,这个构造函数的函数体是空的,因此默认构造函数不具备任何功能。
    3.没有返回值
    4.拷贝构造函数是特殊的构造函数,格式为
类名(类名 & 对象名)
{
……
}
    5.被声明定义为公有函数
    6.对派生类的构造函数定义之前要对基础类(的构造函数)初始化
基础类: Array(unsigned int s)
初始化: SortedArray(unsigned int s):Array(s){}
    7.构造函数中的参数要给私有成员赋值
    8.构造函数的参数定义时要注意在赋值语句中使用的参数,考察构造函数一般都会考察到形参,应注意联系上下文,
    9.类的成员函数在类外定义时要在前面加上返回值类型,即:
返回值类型+类名+作用域(::)
    10.私有成员在主函数main中不能直接调用,只能被类的成员函数调用
    11.构造函数也要使用作用域符号'::'
    12.构造函数的成员列表初始化格式为   :私有成员(参数),…,…{},不能用赋值语句
    13.在构造函数中this指针指向的是当前类,因此当参数名和要赋值的成员名称一样时,使用this指针来区别,即当类的私有成员和形参名字相同时,为了区别类的成员要调用this指针来区分
    14.构造函数的成员初始列表要把形参放在括号内

15.调用类的成员函数使用标识符'.',而不是作用域符'::'




析构函数:

1.构造对象时,通过构造函数动态申请了一些内存单元,在对象消失之前就要释放这些内存单元,C++用析构函数来保证这些善后工作的执行,它是在对象消失之前的瞬间自动调用的函数

2.析构函数没有任何参数,不能被重载,但可以是虚函数,一个类只能有一个析构函数

3.同构造函数一样,没有返回值

4.析构函数名在类名前加上一个逻辑非运算符“~”,以示与构造函数对比区别

5.析构函数一般由用户自己定义,在对象消失时由系统自动调用,如果用户没有定义析构函数,系统将自动生成一个不做任何事儿的默认析构函数。在对象消失时的清理工作并不是析构函数完成的,而是靠用户在析构函数里添加的处理语句完成

6.delete [] 要释放的指针;//释放指针变量

7. virtual ~Array() { delete[] a;}   意思是它为虚函数,同时释放指针a

8.在使用virtual之前,C++对成员函数使用静态联编,而使用virtual,并且在调用函数时是通过指针或引用调用,C++则对成员函数进行动态编联。

  评论这张
 
阅读(63)| 评论(19)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017