析构函数和虚函数的用法和作用指针与引用的区别


置“~”是析构函数,因使用"~"符号(逻辑非运算符),表示它为腻构造函数,加上类名称来定义 ;
析构函数也是特殊的类成员函数,它没有返回类型,没有参数,不能随意调用,也没有重载,只有在类对象的生命期结束的时候,由系统自动调用。 
虚函数是C++多态的一种表现 ;
例如:子类继承了父类的一个函数(方法),而我们把父类的指针指向子类,则必须把父类的该函数(方法)设为virturl(虚函数)。 
使用虚函数,我们可以灵活的进行动态绑定,当然是以一定的开销为代价。
如果父类的函数(方法)根本没有必要或者无法实现,完全要依赖子类去实现的话,可以把此函数(方法)设为virturl 函数名=0 
我们把这样的函数(方法)称为纯虚函数。 
如果一个类包含了纯虚函数,称此类为抽象类
指针与引用的区别
引用:变量的别名;不分配内存空间;定义时必须同时初始化;一旦初始化后其值不能改变;
指针:是一个变量;分配内存空间;定义时可以不必初始化;
指针其实也是一种值传递,不过它传的是地址而已,引用传递是传入栈中偏移 
这可以从反汇编后看出来 
指针是把变量的地址入堆栈,函数开始出栈后,只能改变指针改向的地址处的内容,而不能改变指针的值
而引用传递压入的是偏移,在函数开始出栈后直接将栈+偏移来操作传入参数,所以引用使用的是同一个对象,不需要额外产生对象的拷贝,提高了效率。
    char   const   *p和char   * const  p区别?   
    char   const   *p指针p所指的内容不能改   
    char  * const   p指针自己的内容不能改   
   
    char  str  = 'j';   
    char str2  = 'f';   
    char const *p = &str;             
    *p = 'q';                 //不能改   
     p = &str2;              //可以   
    char *const m= &str;   
    m = &str2;              //不能改   
    *m = 'e';              //可以
 
  const char *p 与char const *p是等价的,表示指针指向的内容是不变的!   
  而char *const p是表示指向P的指针值是不可变的!
  
  const   在*之"前"表示内容不变   
  const   在*之"后"表示指针不变


    如:   
  可以这样记:   

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值