友元是C++提供的一种破坏数据隐蔽和封装的机制 1.友元函数 友元函数是在类中使用关键字friend修饰的非成员函数 1.1友元普通函数 定义与概念 友元函数是一个普通的函数 友元普通函数在实现时,不需要类名的限定;在调用时,也不需要由实例来调用 示例代码 include include using ...
分类:
编程语言 时间:
2019-03-29 17:33:48
阅读次数:
146
多态:同样的消息作用于不同类型的对象产生不同的行为。1,静态多态 实现:运算符重载。(from 学堂在线) 重载为类的成员函数: 重载为非成员函数: 有些运算符不能重载为类的成员函数(二元运算符的左操作数不是对象,某些类不是自己设计的)。 2,动态多态 实现:虚函数 ...
分类:
编程语言 时间:
2019-03-04 20:55:47
阅读次数:
206
所谓重载,就是重新赋予新的含义。函数重载是对一个已有的函数赋予新的含义,使之实现新功能。 其实运算符也可以重载,实际上,我们常常在不知不觉之中使用了运算符重载。 运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。 也就是说,运算符重载是通 ...
分类:
其他好文 时间:
2019-02-22 23:17:39
阅读次数:
196
友元函数:不是类的成员函数,但是能够访问类的私有数据成员。 之前有个矛盾就是规定非成员函数不能直接访问类的私有数据,但是这会儿却可以,但那只是针对常规非成员函数而言,特殊的非成员函数就可以访问类的私有数据——友元函数。 友元函数就是这么特殊,虽然在类中声明,却不是类的成员函数,这是因为加了前缀fri ...
分类:
编程语言 时间:
2019-02-22 23:15:57
阅读次数:
234
(1):: 叫作用域区分符,指明一个函数属于哪个类或一个数据属于哪个类。 您也可以在类的外部使用范围解析运算符 :: 定义该函数,如下所示: (2):: 可以不跟类名,表示全局数据或全局函数(即非成员函数)。 ...
分类:
其他好文 时间:
2019-01-11 16:00:23
阅读次数:
152
介绍了STL中String类的各方面使用方法。构造,大小,单元素访问,范围访问,成员函数算法,非成员函数,string和算法结合 ...
分类:
其他好文 时间:
2019-01-01 11:10:39
阅读次数:
200
友元函数不是成员函数,是类外函数所以声明放在类的私有段或公有段且没有区别。但是它可以访问类中的私有成员。友元的作用在于提高程序的运行效率,但是,它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。 友元函数没有this指针,在访问非static或非全局成员时需要对象作为参数。同时友元函数 ...
分类:
编程语言 时间:
2018-12-24 16:30:41
阅读次数:
159
本周学习了多态性和部分的输入输出流。主要学了 1、静态多态包括运算符重载,函数重载。注意运算符重载的规则和一些限制,分为非成员函数实现和成员函数实现。 2、类型转换函数可以将本类函数对象转化为其他类对象,含有其他运算符如++、--的重载。 3、静态联编、动态联编(虚函数的定义和使用)。 4、纯虚函数 ...
分类:
其他好文 时间:
2018-12-21 22:48:05
阅读次数:
224
7.20:友元函数在什么时候有用?请分别说明友元函数的利与弊。 Ans:当一个不是类的成员函数想要访问类内的私有成员时,可以将其设为友元函数,这样该函数就能访问类内的所有成员。 利:提供了非成员函数想要访问类内私有成员的一种方式。 弊:一旦使用不当会破坏类的封装性。 ...
分类:
其他好文 时间:
2018-08-19 22:43:07
阅读次数:
170
1.操作符重载,(可以使用成员函数,也可以使用非成员函数) this 所有的成员函数均隐藏着一个参数,this. this与调用者相互绑定。 complex c1,c2; 对于两个复数的相加,暗含着左边加到右边。 inline complex& complex::operator += (this, ...
分类:
编程语言 时间:
2018-08-19 22:00:33
阅读次数:
175