注意事项

虚函数注意事项

》在基类方法声明中使用关键字virtual,可以使该方法在基类及所有的派生类中是虚的

》如果使用指向对象的引用或指针来调用虚方法,程序将使用对象类型定义的方法,而不使用为引用或指针类型定义的方法

  这称为动态联编或晚期联编,这种行为非常重要,因为这样基类指针或引用可以指向派生类对象

》如果定义的类将被用作基类,则将那些要在派生类中重新定义的类方法声明为虚的。

》构造函数不能是虚函数

》析构函数应当是虚函数

》友元不能是虚函数,只有成员类才能是虚函数


返回值 注意事项

1.不要返回指向局部变量或临时对象的引用。函数执行完毕后,局部变量和临时对象会消失,引用将指向不存在的数据

2.返回指向const对象的引用 

  使用const引用的常见原因是旨在提高效率,但对于何时采用这种方式存在一些限制。

  如果函数返回传递给它的对象,可以通过返回引用来提高效率。

  A Max(const A & a1,const A &a2)

  {

    if(a1.v>a2.v)

      reutrn a1;

    else

      return a2;

  }

  const A & Max(const A &a1,const A & a2)

  { 

    if(a1.v>a2.v)

      reutrn a1;

    else

      return a2;

  }

第一个方法返回将调用复制构造函数A(const A &a);而第二个方法返回引用不会,因此第二个版本所做的工作更少,

效率更高


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值