C++一些注意点之友元函数、虚函数以及const和volatile对象

本文详细介绍了C++中的友元函数,强调其非成员性质和作用域特点,以及如何成为类的友元。接着讨论了虚函数和多态性,包括编译多态性和运行多态性,并指出虚函数的注意事项。此外,还探讨了纯虚函数在抽象类中的角色。最后,讲解了const和volatile修饰的对象及其对成员函数访问的影响。
摘要由CSDN通过智能技术生成

1.友元函数

       定义类时,在类中加上关键字修饰函数,则该函数就能成为该类的友元函数,它可以访问该类的所有成员。关于友元函数需要注意以下几点:

     (1)友元函数不是类的成员,不带this指针,必须通过对象名或者对象的引用作为友元函数的参数来访问对象的成员。友元函数必须在类定义中说明(但是对友元函数指定访问权限无效,因为友元函数不属于类,所以在类中不管哪声明都是一样的效果可以在类外定义。

     (2)友元函数的作用域跟一般的函数作用域一样。

     (3)一个类可以定义若干个友元函数,也可以将任一个成员函数说明为另一个类的友元函数。

class D;
class C{
     ...
     public:
     void fun(D&);//此时只能声明函数,不能定义函数体,因为D还没定义
};
class D{
     ...
     friend void C::fun(D&);//声明友元函数
};

void C::fun(D&)//函数定义
{......}

     (4)可以将一个类设为另一个类的友元,这样另一个类能访问该类的所有成员。但是这种友元关系不能继承和传递。

class C{
     ...
public:
     void fun(D&);//此时只能声明函数,不能定义函数体,因为D还没定义
};
class D{
     ...
     friend void C::fun(D&);//声明友元函数
};

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值