类中友元函数 、重载操作符 和 数组
来源:互联网 发布:淘宝美即面膜牛奶白滑 编辑:程序博客网 时间:2024/05/16 00:26
1.
bool equal (DayOfYear date1,DayOfYear date2){ return (date1.month==date2.month&&date1.day==date2.day);}
上述定义只有一个问题:它是非法的!之所以非法,是因为成员变量month和day是DayOfYear的私有成员。私有成员变量(和私有成员函数)通常不能在一个函数的主体中引用,除非函数是一个成员函数。
一个类的友元函数不是这个类的成员函数,而是一个“友好”的函数,它能像一个成员函数那样访问那个类的私有成员。友元函数能直接读取一个成员变量的值,甚至能直接更改成员变量的值。
在类的定义中列出一个函数的声明时,要使。该函数成为类的友元,只需要在函数声明之前添加一个关键字friend。友元并不是成员函数,它本质上仍是一个 普通函数,只是被特别授予了访问类的数据成员的权限。
2.一下简单的规则可以帮助你选择成员函数和非成员函数
1、如果函数要执行的任务值涉及一个对象,就使用成员函数。
2、如果要执行的任务涉及多个对象,就使用非成员函数。
3.const参数修饰符
const应用于调用对象:
在成员函数的情况下,关键字const要放到函数声明的后面,刚好在末尾的分号之前,如下所示:
classs Money{public: ...... void output (ostream &outs)const;
const在函数声明和函数定义中都要使用所以output函数定义像下面这样开头:
void Money::output (ostream & const){ ......}
4.重载操作符
规则:
1、重载一个操作符时,至少一个实参必须是类类型。
2、重载的操作符可以是类的友元;操作符函数可以是类的一个成员,也可以是一个普通函数。
3、不能新建一个操作符。只能对现有操作符进行重载,比如+、- 、* 、/ 、%等。
4、不能改变一个操作符的优先级。
5、以下操作符不能重载:圆点操作符、作用域解析操作符::以及操作符.*和?:
- 类中友元函数 、重载操作符 和 数组
- 操作符重载和复制构造函数
- 函数操作符重载
- 操作符重载:类成员函数和全局函数
- C++重载[]数组操作符
- 数组的操作符重载
- 数组操作符的重载
- 重载函数与重载操作符
- 重载操作符>> 和 <<
- c++操作符重载与友元函数 单目 双目 左移右移 ==号操作符重载 自定义数组
- 拷贝构造函数和重载"="赋值操作符
- 函数指针和操作符重载学习笔记
- c++拷贝构造函数和赋值操作符重载
- 关于拷贝构造函数和重载赋值操作符
- 拷贝构造函数 和 赋值操作符重载
- c++操作符重载,拷贝构造函数和友…
- C++ 重载调用操作符和函数对象
- 06_nullptr、NULL、操作符重载、Const对象和函数
- 动态链接库*.so的编译与使用
- Java_09_26_课堂总结
- Linux C 环境下不带缓冲的I/O操作函数
- UTC Time
- 对IntentService的几点看法
- 类中友元函数 、重载操作符 和 数组
- enum的使用
- 关于java中Timer类的一个简单实例
- BSD下Enter full pathname of shell or RETURN for /bin/sh 解决办法
- vim编辑总结
- 内存字节对齐
- 介绍使用SrvAny.exe将tracd封装成windows服务。
- 线程之间的通信
- 制作自定义背景Button按钮、自定义形状Button的全攻略