成员函数,全局函数和友元函数的区别
时间: 2024-04-28 16:22:28 浏览: 11
成员函数是属于类的函数,只能被该类的对象调用,可以访问该类中的所有成员变量和成员函数,但无法访问该类的私有静态成员变量和私有静态成员函数。
全局函数是在类外定义的函数,可以被任何函数或对象调用,但无法访问该类的私有成员变量和私有成员函数,需要通过该类的公有接口进行访问。
友元函数是在类中声明的非成员函数,可以访问该类的私有成员变量和私有成员函数,但不属于该类的成员函数,需要在类外定义。友元函数可以是全局函数,也可以是另一个类的成员函数。
总的来说,成员函数是类的一部分,全局函数和友元函数是独立于类的函数,但是友元函数可以访问类的私有成员,因此可以用于提高程序的灵活性和安全性。
相关问题
简述成员函数、全局函数和友元函数的差别
成员函数是定义在类中的函数,可以访问类中的所有成员变量和成员函数。成员函数可以分为 const 和非 const 成员函数,const 成员函数不会修改对象的状态,非 const 成员函数可以修改对象的状态。
全局函数是定义在类外的函数,可以访问类的公共成员和友元成员,但不能访问类的私有成员。
友元函数是在类中声明为友元的非成员函数,可以访问类的私有成员和保护成员。友元函数不是成员函数,但可以访问类的成员。
总的来说,成员函数是类的一部分,可以访问所有成员变量和成员函数;全局函数和友元函数不属于类,不能访问私有成员,但友元函数可以在类中声明为友元,允许其访问私有成员。
C++全局函数和友元函数的区别是什么?
C++中的全局函数和友元函数都是定义在类外部的函数,但是它们有以下区别:
1. 访问权限:全局函数不能直接访问类的私有成员,而友元函数可以访问类的私有成员。
2. 关联对象:全局函数不与任何类对象相关联,而友元函数与其关联的类对象相关联。
3. 声明:全局函数不需要在类中进行声明,而友元函数需要在类中进行声明。
4. 定义位置:全局函数的定义位置和其他普通函数一样,可以定义在类的前面或后面,而友元函数的定义位置必须在类的外部,且必须在类声明之后。
总之,友元函数是一种特殊的全局函数,它可以访问类的私有成员,并且与类对象相关联。全局函数不能访问类的私有成员,也不与类对象相关联,因此在使用时需要注意这些区别。