当前位置:首页 » 密码管理 » 一个类的友元函数能够访问

一个类的友元函数能够访问

发布时间: 2022-08-11 06:43:41

① 友元函数可以访问类的私有数据

普通函数是可以将类对象作为参数的,也可以直接访问public的成员函数和数据成员,但是不能访问private和protected类型的成员函数和数据成员。

② c++ 选择题,求答案

A. 析构函数有且只有一个 B.析构函数无任何函数类型
C.析构函数和构造函数一样可以有形参 D.函数的作用是在对象被撤消时收回先前分配的内存空间
10. 下列的各类函数中,______c____不是类的成员函数
A. 构造函数 B. 析构函数 C. 友元函数 D. 拷贝初始化构造函数
11. 下述静态数据成员函数的特征中,____d_____是错误的
A.说明静态书记成员时前边要加修饰符static B.静态数据成员在类体外要进行初始化
C.引用静态数据成员时,要在静态数据成员名前加〈类名〉和作用域运算符 D.静态数据成员不是所有对象共用的
12.下列关于指针的运算中,___a_____是非法的
A.两个指针在一定条件下,可以进行相等或不等的运算 B.可以将一个空指针赋给某个指针
C.一个指针可以加上两个整数之差 D.两个指针在一定条件下可以相加
13. 若定义:float x;int a,b; ,则正确的switch 语句是_____d_____
A.switch(x)
{ case 1.0:cout<<"*\n";
case 2.0:cout<< "**\n";
}
B. switch (x)
{ case 1.2:cout<<"*\n";
case 3 :cout<<"**\n";
}
C. switch (a+b)
{ case 1.0:cout<<"*\n";
case 1+2:cout<<"**\n";
}
D. switch (a+b)
{case 1:cout<<"*\n";
case 2:cout<<"**\n";
}
14. 下列程序输出的结果是_________
#include <stdio.h>
sub1(char a, char b) {char c; c=a; b=c;}
sub2(char a, char b) {char c; c=*a; b=c;}
sub3(char a, char b) {char c; c=*a; *a=*b;*b=c;}
void main ( )
{ char a, b;
a='A';b='B';sub1 (a,b);putchar(a);putchar(b);
a='A';b='B';sub2 (&a,b);putchar(a);putchar(b);
a='A';b='B';sub3 (&a,&b);putchar(a);putchar(b);
putchar('\n');
}
A.ABABAB B.ABBBBA C.ABBABA D.ABABBA
15.一个类的友元函数能够访问该类的____d____
A. 私有成员 B.保护成员 C. 公有成员 D. 所有成员
16.下列运算符中,___a__运算符在C++中不能重载
A.?: B.+ C.- D.<=

③ C++中类的友元函数能不能访问类的静态数据成员

1、 友元函数是可以直接访问类的私有成员的非成员函数。它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字friend。
2、 友元函数可以访问类的静态成员、私有成员和公有成员。
3、友元的作用在于提高程序的运行效率(即减少了类型检查和安全性检查等都需要的时间开销),但是,它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。

④ 友元函数可以访问公有成员函数吗

1、 友元函数是可以直接访问类的私有成员的非成员函数。它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字friend。 2、 友元函数可以访问类的静态成员、私有成员和公有成员。

⑤ 友元函数有什么作用,它主要用在哪些情况下

友元函数的作用就是提供直接访问对象的私有成员的接口。通过友元,一个不同函数或另一个类中的成员函数可以访问类中的私有成员和保护成员。

使用情况:

1)必须在类的说明中说明友元函数,说明时以关键字friend开头,后跟友元函数的函数原型,友元函数的说明可以出现在类的任何地方,包括在private和public部分;

2)注意友元函数不是类的成员函数,所以友元函数的实现和普通函数一样,在实现时不用"::"指示属于哪个类,只有成员函数才使用"::"作用域符号;

3)友元函数不能直接访问类的成员,只能访问对象成员;

4)友元函数可以访问对象的私有成员,但普通函数不行;

5)调用友元函数时,在实际参数中需要指出要访问的对象;

6)类与类之间的友元关系不能继承;

7)一个类的成员函数也可以作为另一个类的友元,但必须先定义这个类。

(5)一个类的友元函数能够访问扩展阅读:

友元函数的成员函数:

假设f是想正确声明的函数,c是和它相关的类;

1、虚函数必须是成员函数。如果f必须是虚函数,就让它成为c的成员函数。

2、operator>>;和operator<<;决不能是成员函数。如果f是operator>>;或operator<<;,让f成为非成员函数。如果f还需要访问c的非公有成员,让f成为c的友元函数;

3、只有非成员函数对最左边的参数进行类型转换。如果f需要对最左边的参数进行类型转换,让f成为非成员函数。如果f还需要访问c的非公有成员,让f成为c的友元函数;

4、其它情况下都声明为成员函数;

5、如果以上情况都不是,让f成为c的成员函数。

⑥ 友元函数是否能访问当前类中对象成员的私有成员

可以访问。。成员函数和友元函数具有同等的特权(100% 的)。主要的不同在于友元函数象f(x)这样调用,而成员函数象 x.f()这样调用。因此,可以在成员函数(x.f())和友元函数(f(x))之间选择的能力允许设计者选择他所认为更具可读性的语法来降低维护成本...

⑦ 友元函数有什么作用

友元函数是可以直接访问类的私有成员的非成员函数。它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字friend,其格式如下:

friend 类型 函数名(形式参数);

友元函数的声明可以放在类的私有部分,也可以放在公有部分,它们是没有区别的,都说明是该类的一个友元函数。一个函数可以是多个类的友元函数,只需要在各个类中分别声明。友元函数的调用与一般函数的调用方式和原理一致。

拓展资料:

使用说明
1、友元函数是类外函数,声明可以放在类的私有或者公有,且都没有区别;
2、直接调用友元函数不需要通过对象或者指针;
3、友元函数没有this指针,且不能被继承;
4、友元函数声明形式 friend + 普通函数声明。

参考资料:友元函数

⑧ 友元的友元函数

友元函数是能够访问类中的私有成员的非成员函数。友元函数从语法上看,它与普通函数一样,即在定义上和调用上与普通函数一样。
友元关系不具对称性。即 A 是 B 的友元,但 B 不一定是 A 的友元。 友元关系不具传递性。即 B 是 A 的友元,C 是 B 的友元,但是 C 不一定是 A 的友元。
作用及特点
友元提供了不同类的成员函数之间、类的成员函数与一般函数之间进行数据共享的机制。通过友元,一个不同函数或另一个类中的成员函数可以访问类中的私有成员和保护成员。c++中的友元为封装隐藏这堵不透明的墙开了一个小孔,外界可以通过这个小孔窥视内部的秘密。
友元的正确使用能提高程序的运行效率,但同时也破坏了类的封装性和数据的隐藏性,导致程序可维护性变差。 下面举一例子说明友元函数的应用。 #include<iostream>#include<cmath>usingnamespacestd;classPoint{public:Point(doublexx,doubleyy){x=xx;y=yy;};voidGetxy();frienddoubleDistance(Point&a,Point&b);private:doublex,y;};voidPoint::Getxy(){cout<<(<<x<<,<<y<<)<<endl;}doubleDistance(Point&a,Point&b){doubledx=a.x-b.x;doubledy=a.y-b.y;returnsqrt(dx*dx+dy*dy);}intmain(void){Pointp1(3.0,4.0),p2(6.0,8.0);p1.Getxy();p2.Getxy();doubled=Distance(p1,p2);cout<<Distanceis<<d<<endl;return0;}说明:在该程序中的Point类中说明了一个友元函数Distance(),它在说明时前边加friend关键字,标识它不是成员函数,而是友元函数。它的定义方法与普通函数定义一样,而不同于成员函数的定义,因为它不需要指出所属的类。但是,它可以引用类中的私有成员,函数体中a.x,b.x,a.y,b.y都是类的私有成员,它们是通过对象引用的。在调用友元函数时,也是同普通函数的调用一样,不要像成员函数那样调用。本例中,p1.Getxy()和p2.Getxy()这是成员函数的调用,要用对象来表示。而Distance(p1, p2)是友元函数的调用,它直接调用,不需要对象表示,它的参数是对象。(该程序的功能是已知两点坐标,求出两点的距离。)

⑨ 一个类的友元函数可以访问该类的() A私有成员 B保护成员C公有成员D所有成员

选择D
成员函数跟友元函数有相同的权限,都可以访问公有、保护、私有的成员

⑩ 类的友元函数只能访问类的私有成员吗

只能被共有成员函数以及该类的任何友元类或友元函数访问,肯定错呀。
私有成员函数也能访问呀。

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:335
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:377
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:612
java用什么软件写 发布:2025-05-18 03:56:19 浏览:31
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:942
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:739
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:802
网卡访问 发布:2025-05-18 03:35:04 浏览:510
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:371