基于c++的运算符重载(二、数组非友元)
来源:互联网 发布:淘宝成功之处 编辑:程序博客网 时间:2024/06/05 20:04
using namespace std;
class MyArray
{
private:
int *m_a; //数组名
int m_length; //数组长度
public:
MyArray(int l) //构造函数不解释
{
m_length = l;
m_a = new int[l];
}
MyArray(int *a, int l) //构造函数重载不解释
{
m_length = l;
m_a = a;
}
void display() //打印函数不解释
{
for(int i = 0; i < m_length; i++)
{
cout << m_a[i] << ",";
}
cout << endl;
}
MyArray * operator + (MyArray m2); //数组+数组的重载
MyArray * operator + (int a); //数组+数的重载
MyArray * operator - (MyArray m2); //数组-数组的重载
MyArray * operator = (MyArray m2); //数组赋值的重载
int operator * (MyArray m2); //数组*数组没有实际作用
};
MyArray * MyArray::operator + (MyArray m2) //返回值是一个指针指向数组
{
MyArray *c = new MyArray(m_length);
for(int i = 0; i < m_length; i++)
{
c -> m_a[i] = m_a[i] + m2.m_a[i];
}
return c;
}
MyArray * MyArray::operator + (int a)
{
MyArray *c = new MyArray(m_length);
for(int i = 0; i < m_length; i++)
{
c -> m_a[i] = m_a[i] + a;
}
return c;
}
MyArray * MyArray::operator - (MyArray m2)
{
MyArray *c = new MyArray(m_length);
for(int i = 0; i < m_length; i++)
{
c -> m_a[i] = m_a[i] - m2.m_a[i];
}
return c;
}
/*
MyArray * MyArray::operator = (MyArray m2)//返回的是(a = b)整个式子的值而不是a的值,a的值没有变(错)
{
MyArray *a = new MyArray(m_length);
for(int i = 0; i < m_length; i++)
{
a -> m_a[i] = m2.m_a[i];
}
return a;
}
*/
/*
MyArray MyArray::operator = (MyArray m2)
{
MyArray a(m_length); //返回的是(a = b)整个式子的值而不是a的值,a的值没有变(错)
for(int i = 0; i < m2.m_length; i++)
{
a.m_a[i] = m2.m_a[i];
}
return a;
}
*/
MyArray * MyArray::operator = (MyArray m2)
{
for(int i = 0; i < m_length; i++)
{
m_a[i] = m2.m_a[i];
}
return this;
}
int MyArray::operator * (MyArray m2)
{
int sum = 0;
for(int i = 0; i < m_length; i++)
{
sum += m_a[i] * m2.m_a[i];
}
return sum;
}
class MyArray
{
private:
int *m_a; //数组名
int m_length; //数组长度
public:
MyArray(int l) //构造函数不解释
{
m_length = l;
m_a = new int[l];
}
MyArray(int *a, int l) //构造函数重载不解释
{
m_length = l;
m_a = a;
}
void display() //打印函数不解释
{
for(int i = 0; i < m_length; i++)
{
cout << m_a[i] << ",";
}
cout << endl;
}
MyArray * operator + (MyArray m2); //数组+数组的重载
MyArray * operator + (int a); //数组+数的重载
MyArray * operator - (MyArray m2); //数组-数组的重载
MyArray * operator = (MyArray m2); //数组赋值的重载
int operator * (MyArray m2); //数组*数组没有实际作用
};
MyArray * MyArray::operator + (MyArray m2) //返回值是一个指针指向数组
{
MyArray *c = new MyArray(m_length);
for(int i = 0; i < m_length; i++)
{
c -> m_a[i] = m_a[i] + m2.m_a[i];
}
return c;
}
MyArray * MyArray::operator + (int a)
{
MyArray *c = new MyArray(m_length);
for(int i = 0; i < m_length; i++)
{
c -> m_a[i] = m_a[i] + a;
}
return c;
}
MyArray * MyArray::operator - (MyArray m2)
{
MyArray *c = new MyArray(m_length);
for(int i = 0; i < m_length; i++)
{
c -> m_a[i] = m_a[i] - m2.m_a[i];
}
return c;
}
/*
MyArray * MyArray::operator = (MyArray m2)//返回的是(a = b)整个式子的值而不是a的值,a的值没有变(错)
{
MyArray *a = new MyArray(m_length);
for(int i = 0; i < m_length; i++)
{
a -> m_a[i] = m2.m_a[i];
}
return a;
}
*/
/*
MyArray MyArray::operator = (MyArray m2)
{
MyArray a(m_length); //返回的是(a = b)整个式子的值而不是a的值,a的值没有变(错)
for(int i = 0; i < m2.m_length; i++)
{
a.m_a[i] = m2.m_a[i];
}
return a;
}
*/
MyArray * MyArray::operator = (MyArray m2)
{
for(int i = 0; i < m_length; i++)
{
m_a[i] = m2.m_a[i];
}
return this;
}
int MyArray::operator * (MyArray m2)
{
int sum = 0;
for(int i = 0; i < m_length; i++)
{
sum += m_a[i] * m2.m_a[i];
}
return sum;
}
阅读全文
1 0
- 基于c++的运算符重载(二、数组非友元)
- C++:重载运算符避免数组越界
- C++——运算符重载(二)
- 【C/C++开发】运算符重载二
- 运算符重载(二)
- 运算符重载(二)
- c++-运算符的重载
- C++--运算符的重载
- (多年后回头学习c#)被遗忘的世界 二 运算符重载
- 运算符重载(c++)
- Time类中的运算符重载(2)-二目运算符的重载
- [C/C++]运算符的重载
- 数组类运算符的重载
- 基于c++的运算符重载(一、复数非友元+友元)
- 从零开始学C++之运算符重载(二):++运算符重载、!运算符重载、赋值运算符重载
- 从零开始学C++之运算符重载(二):++运算符重载、!运算符重载、赋值运算符重载
- 从零开始学C++之运算符重载(二):++运算符重载、!运算符重载、赋值运算符重载
- 重载赋值运算符(c/c++)
- nodejs输出json
- python中pandas读取数据库
- 深度学习起步之环境配置【个人踩坑指南】(Ubuntu+Nvidia驱动+cudnn+caffe+opencv)(上)
- 十大步骤帮你有效使用预测分析算法
- 一位资深程序员大牛给予Java初学者的学习建议
- 基于c++的运算符重载(二、数组非友元)
- 启动工程报java.lang.reflect.InvocationTargetException的解决
- CentOS固定IP
- 你因为电脑卡死重装过系统吗?
- iOS开发小技巧及小知识点
- 如何自己成功搭建一个SSM框架的WEB项目
- centos7搭建redis集群环境
- 分页介绍;分页的种类,分页的原理
- 自然语言处理(二)