友元:友元函数 友元类。 友元函数:不属于任何类,只是在类中声明一下(可以放在 private 或者 public,没有区别),告诉这个类,这个函数是你的朋友,当然朋友不是白当的:这个函数可以访问你的私有成员变量! 毫无疑问,这破坏了类的封装性,可能出现安全问题,那又怎么样~ 毕竟还是朋友。 友元类 ...
分类:
编程语言 时间:
2016-06-17 06:14:56
阅读次数:
191
;函数模板友元 (即一个类友元的是一个全局函数模板而不是原先的全局函数,需注意类模板传入的类型) 标准带类模板参数 friend void fun1(A<T>& obj); 指定这个A<T>类型的模板有一个这样的朋友函数,那么也就意味着这个函数内部只能由A<T>类型的模板 实例化的类 实例化出来的对 ...
分类:
其他好文 时间:
2016-06-05 23:21:26
阅读次数:
254
还是用一个例子来说明吧 针对问题2,我们可以增加opertor的重载函数 friend RMB operator +(double&, RMB&); friend RMB operator +(RMB&, double&); 但是这样很麻烦. 这里会利用类构造函数的隐式转换提供一个解决方案 好,接下 ...
分类:
其他好文 时间:
2016-06-04 22:07:59
阅读次数:
466
1.什么是友元在一个类A中,将类B声明为友元类,则类B可以访问类A的私有成员和保护成员。另外,也可以将函数声明为友元函数。 2.什么时候用到友元若不同的类之间某些共享数据成员,可以使用友元,简化类的设计。 3.友元类友元类的声明:friend class 类名示例如下:对于电视和遥控器来说,都共享频 ...
分类:
编程语言 时间:
2016-05-24 12:05:09
阅读次数:
289
实现CMyString类,实现赋值运算符函数(深拷贝与浅拷贝)
深拷贝:赋值运算符函数说明
步骤1、释放原来的内存空间
步骤2、再重新开辟要赋值的对象的大小的空间
步骤3、再将另一个对象的值拷贝给this对象
友元函数的说明:由于输出重载需要俩个参数,不能再隐含this指针,故使用友元函数
代码如下:
class CMyString
{
public:...
分类:
其他好文 时间:
2016-05-12 23:45:31
阅读次数:
394
例题:定义一个继承与派生关系的类体系,在派生类中访问基类成员。先定义一个点类,包含x,y坐标数据成员,显示函数和计算面积的函数成员;以点为基类派生一个圆类,增加表示半径的数据成员,重载显示和计算面积的函数;定义一个线段类,以两个点类对象作数据成员,定义显示、求面积及长度函数,线段类采用聚合方式,因为 ...
分类:
其他好文 时间:
2016-05-06 19:02:40
阅读次数:
164
class MyClass{ int member;public: MyClass(int x) :member(x){} //析构函数必须有“void”参数列表 ~MyClass(){} //需要访问类的成员变量时需要用友元函数 friend void judge(MyClass &obj);}; ...
分类:
其他好文 时间:
2016-04-26 19:07:22
阅读次数:
151
常见的不不能声明为虚函数的有:普通函数(非成员函数);静态成员函数;内联成员函数;构造函数;友元函数。 1.为什么C++不支持普通函数为虚函数? 普通函数(非成员函数)只能被overload,不能被override,声明为虚函数也没有什么意思,因此编译器会在编译时邦定函数。 多态的运行期行为体现在虚 ...
分类:
编程语言 时间:
2016-04-24 20:16:45
阅读次数:
177
C++_运算符重载 C++_运算符重载 什么是运算符的重载? 什么是运算符的重载? 什么是运算符的重载? 运算符与类结合,产生新的含义。 为什么要引入运算符重载? 作用:为了实现类的多态性(多态是指一个函数名有多种含义) 怎么实现运算符的重载? 方式:类的成员函数 或 友元函数(类外的普通函数) 规 ...
分类:
编程语言 时间:
2016-04-22 13:26:28
阅读次数:
145
代码: 输出: 分析: 前缀方式和后缀方式重载函数不同,以参数int区分 ...
分类:
编程语言 时间:
2016-04-20 00:40:02
阅读次数:
227