Sicily 2710. 运算符重载
来源:互联网 发布:数据恢复专业版 编辑:程序博客网 时间:2024/05/16 15:44
2710. 运算符重载
Constraints
Time Limit: 1 secs, Memory Limit: 256 MB , Framework Judge
Description
试补充完成类numCal的定义
(注意:所有运算符的重载都必须符合运算符原本的语义,比如++A是“先加后使用”)
class numCal {
public:
numCal(int [], int); // 构造函数,形参分别是整形数组、数组长度
numCal(const numCal&) //拷贝构造函数
~numCal(); // 析构函数,要完成释放内存的操作
int sum(); // 求动态数组arr中size个元素值和
numCal& operator=(const numCal&) //=运算符重载
numCal& operator++(); //前序++运算符重载,使得++A后,A.arr的每个元素值加1
(A为numCal类型的对象,下同);
numCal operator++(int); //后序++运算符重载,使得A++后,A.arr的每个元素值加1。
//……
private:
int size; // 数组arr元素个数
int *arr; // 动态数组
};
Hint
你只需要提交类定义。
// Problem#: 2710// Submission#: 3375538// The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License// URI: http://creativecommons.org/licenses/by-nc-sa/3.0/// All Copyright reserved by Informatic Lab of Sun Yat-sen Universityclass numCal {public: numCal(int a[], int n) { if (n == 0) arr = NULL; else arr = new int[n]; size = n; for (int i = 0; i < size; i++) arr[i] = a[i]; } numCal(const numCal & an) { if (an.size == 0) arr = NULL; else arr = new int[an.size]; size = an.size; for (int i = 0; i < size; i++) arr[i] = an.arr[i]; } ~numCal() { if (arr) delete[] arr; arr = NULL; size = 0; } int sum() { int s = 0; for (int i = 0; i < size; i++) s += arr[i]; return s; } numCal & operator=(const numCal & an) { if (arr) delete[] arr; arr = NULL; arr = new int[an.size]; size = an.size; for (int i = 0; i < size; i++) arr[i] = an.arr[i]; return *this; } numCal& operator++() { for (int i = 0; i < size; i++) arr[i]++; return *this; } numCal operator++(int) { numCal an(*this); for (int i = 0; i < size; i++) arr[i]++; return an; }private: int size; int *arr;};
0 0
- Sicily 2710. 运算符重载
- Sicily 2710. 运算符重载
- 运算符重载 [++,--,+,<<; &&,||(不可重载)]
- 重载之运算符重载
- 重载赋值运算符
- C++运算符重载
- 运算符重载
- 运算符重载总结
- 运算符重载例子
- 运算符重载
- 运算符重载
- 基础:运算符重载
- 运算符重载
- 运算符重载
- 重载赋值运算符
- C#运算符重载
- C++-运算符重载
- 重载赋值运算符
- 使用CoCos2dx-3.4开发一套可以商用的跑酷游戏 之一 Win8平台的Cocos2dx环境搭建与知识预备
- IList,ICollection,IEnumerable,IEnumerator,IQueryable
- repeater嵌套以及合计问题
- 查询一张表中只有本月数据求半年的报表的sql
- Java虚拟机工作原理详解
- Sicily 2710. 运算符重载
- 如何捕获 runtimeException
- [Android界面] addView(View, LayoutParams) is not supported in AdapterView
- 初入Android
- Ubuntu创建Firefox应用图标
- jersey框架中的web service接口传递对象参数
- uncognizable insn
- 遇到没有exe文件的驱动
- linux网络系统安全防范措施