运算符重载

运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。

运算符重载造价信息

市场价 信息价 询价
材料名称 规格/型号 市场价
(除税)
工程建议价
(除税)
行情 品牌 单位 税率 供应商 报价日期
重载 规格:长×宽×厚(mm):300×500×30;材质:水泥混凝土;颜色:本色 查看价格 查看价格

兴宇

13% 崇州市锦江兴宇水泥制品厂
重载型小型断路器 2PC50A 5SP4 250-7 查看价格 查看价格

西门子

13% 西门子(中国)有限公司
重载型小型断路器 2PC63A 5SP4 260-7 查看价格 查看价格

西门子

13% 西门子(中国)有限公司
重载型小型断路器 2PC80A 5SP4 280-7 查看价格 查看价格

西门子

13% 西门子(中国)有限公司
重载型小型断路器 2PC100A 5SP4 291-7 查看价格 查看价格

西门子

13% 西门子(中国)有限公司
重载型小型断路器 3PC50A 5SP4 350-7 查看价格 查看价格

西门子

13% 西门子(中国)有限公司
重载型小型断路器 3PC100A 5SP4 391-7 查看价格 查看价格

西门子

13% 西门子(中国)有限公司
重载型小型断路器 4PC80A 5SP4 480-7 查看价格 查看价格

西门子

13% 西门子(中国)有限公司
材料名称 规格/型号 除税
信息价
含税
信息价
行情 品牌 单位 税率 地区/时间
暂无数据
材料名称 规格/需求量 报价数 最新报价
(元)
供应商 报价地区 最新报价时间
GPU运算服务器 4U机架式设备,具有2+2冗余电源;4张 Tesla P4卡;2颗Intel E5-2680 V4(14核2.4Ghz),128GB DDR4,1个150GB SSD;8个2.5英寸SATA 3.0|1台 3 查看价格 美电贝尔 广东  阳江市 2018-09-11
室外重载云台 MY-5050 承载50kg,重型、可调蜗轮传动驱动装置全铝合金材质,垂直旋转范围:±45°可以调节,水平旋转范围0-356°,限位可调.|3586台 1 查看价格 天津市环球锐视科技发展中心 天津  天津市 2015-09-08
防爆重载云台 英国Molynx系列、Phoenix系列 FP50-P|4317台 1 查看价格 南京华诺科技有限公司 江苏  南京市 2015-08-23
防爆重载云台 英国Molynx系列、Phoenix系列 FP50|5864台 1 查看价格 南京华诺科技有限公司 江苏  南京市 2015-07-07
防爆重载云台 英国Molynx系列、Phoenix系列 FP50/L|1398台 1 查看价格 南京华诺科技有限公司 江苏  南京市 2015-07-03
高性能业务运算计算机(图像处理及本地运算要求高) I7CPU 16G内存 1T硬盘 2G独显,三个HDMI接口独显一块,三屏24寸液晶显示器,win7操作系统|17台 1 查看价格 广州丹诚计算机科技有限公司 全国   2017-12-08
固定型三角 无|15只 3 查看价格 东莞市莞城永固电力器材有限公司 广东  广州市 2019-12-17
固定型三角 成品(10m杆)|3085个 1 查看价格 通大电信点力物资商场 广东  韶关市 2015-11-17

运算符重载常见问题

  • 整式运算题

    1.若﹣2amb4与5an+2b2m+n可以合并成一项,求mn的值____________ 2.已知实数a,b,c满足a2+b2=1,b2+c2=2,c2+a2=2,求ab+bc+ca的最小值____...

  • 有效数字的运算应遵循怎样的运算规则

    有效数字运算规则 由于与误差传递有关,计算时加减法和乘除法的运算规则不太相同。1.加减法先按小数点后位数最少的数据保留其它各数的位数,再进行加减计算,计算结果也使小数点后保留相同的位数。2.乘除法先按...

  • 运算时跳出来的,汇总运算终止什么意思

    选中提示内容  把构建删掉重新画 

运算符重载文献

电气符 电气符

格式:pdf

大小:324KB

页数: 25页

评分: 4.6

序号 图 形 符 号 说 明 1 开关 (机械式 ) 2 多级开关一般符号多 线表示 3 (在非动作位置触点断 开) 4 接触器 (在非动作位置 触点闭合 ) 5 负荷开关 (负荷 ) 6 具有自动释放功能的 负荷开关 7 熔断器式断路器 8 断路器 9 隔离开关 10 熔断器一般符号 11 跌落式熔断器 12 熔断器式开关 13 熔断器式隔离开关 14 熔断器式负荷开关 15 熔断器式负荷开关 16 当操作器件被吸合时 延时闭合的动合触点 17 当操作器件被释放时 延时闭合的动合触点 18 当操作器件被释放时 延时闭合的动断触点 19 当操作器件被吸合时 延时闭合的动断触点 20 当操作器件被吸合时 延时闭合和释放时延 时断开的动合触点 21 按钮开关 (不闭锁 ) 22 旋钮开关、旋转开关 (闭锁 ) 23 位置开关 ,动合触点 限制开关 ,动合触点 24 位置开关 ,动断触点 限制开

立即下载
暖通图例符 暖通图例符

格式:pdf

大小:324KB

页数: 12页

评分: 4.5

通 风 空 调 设 计 统 一 图 例 电动对开式多叶调节阀: (电讯号比例调节风阀) 电动多叶送风(排烟)口:电讯号瞬间开启或就地手动开启,电动或手动复位。 定风量调节阀: 70℃防火阀: 70°C熔断关闭,手动复位。 150℃防火阀: 150°C熔断关闭,手动复位。 280℃防火阀: 280°C熔断关闭,手动复位。 70℃防火调节阀: 70°C熔断关闭,手动复位;手动调节风量。 280℃防火调节阀:电讯号瞬间自动开启 (或关闭 ), 并输出电信号 ,280℃熔断关闭 ,电动或手 动复位。 70℃电动防火阀:电讯号瞬间自动关闭 , 并输出电信号 ;电讯号再次自动开启 ,70℃熔断关闭 , 电动或手动复位。 280℃电动防火阀:电讯号瞬间自动关闭 ,并输出电信号 ;电讯号再次自动开启 ,280℃熔断关 闭 ,电动或手动复位。 电动密闭阀: 风管止回阀: 加压阀:常闭,电讯号自动开启。 单层

立即下载

1)非参数化多态(Ad-hoc polymorphism):

a)函数重载(Function Overloading)

b)运算符重载(Operator Overloading)

2)参数化多态(Parametric polymorphism)

c)模板(Template)

其实非参数化多态和参数化多态并不冲突,而且相辅相成,它们混合使用能够带来更大的灵活性,函数模板重载就是很好的例子:

template

T max(const T& lhs, const T& rhs)

{

return lhs > rhs "para" label-module="para">

}

template

T max(const T& fst, const T& sec, const T& thd)

{

return max(max(fst, sec), thd);

}

使用:

max(1, 3, 5);

max(2.4, 4.2);

两个重载函数必须在下列一个或两个方面有所区别:

1、函数有不同参数。

2、函数有不同参数类型,

C++的这种编程机制给编程者极大的方便,不需要为功能相似、参数不同的函数选用不同的函数名,也增强了程序的可读性。

C++运算符重载的相关规定如下:

(1)不能改变运算符的优先级;

(2)不能改变运算符的结合型;

(3)默认参数不能和重载的运算符一起使用;

(4)不能改变运算符的操作数的个数;

(5)不能创建新的运算符,只有已有运算符可以被重载;

(6)运算符作用于C++内部提供的数据类型时,原来含义保持不变。

不同编程范例中的表现形式

注:由于C 同时支持下面要提到的三种编程范例(Programming Paradigm) ,所以就用C 语言为例来说明

静多态过程化编程

C 中对静多态的支持方式有:全局函数重载和运算符重载。

全局函数重载代码:

一下代码中均不考虑函数的返回类型,因为C 中不允许只有函数类型不同的重载。

1)参数个数不同而参数类型相同(对应位置):

void defParamNum(int paramFst);

void defParamNum(int paramFst, double paramSec);

2)参数个数相同而参数类型不同:

void defParamType (int paramFst, double paramSec);

void defParamType (double paramFst, int paramSec);

3)参数个数和参数类型都不相同:

void defBoth(int paramFst);

void defBoth(double paramFst, int paramSec);

运算符重载代码:

其实运算符重载也是一种函数重载。其中多了一些限制,比如一元运算符、二元运算符所要求的参数个数,还有运算符重载的元型(Prototype)都有明确的规定,再就是一些像C语言等不支持运算符重载,所以这里单独列出来。

一元运算符重载:(负值运算符 operator -)

Complex operator – (const Complex& elem)

{

// 复数temp的值为0 0i

Complex temp;

// 将temp的实部设为elem实部负数

temp.setReal(-elem.getReal());

// 将temp的虚部设为elem虚部的负数

temp.setImage(-elem.getImage());

// 返回temp复数,此时temp就是elem对应的负数了

return temp;

}

二元运算符重载:(加法运算符 operator )

Complex operator (const Complex& lhs, const Complex& rhs)

{

// 复数temp的值为0 0i

Complex temp;

// 将temp的实部设为lhs和rhs实部的和

temp.setReal(lsh.getReal() rhs.getReal());

// 将temp的虚部设为lhs和rhs虚部的和

temp.setImage(lsh.getImage() rhs.getImage());

// 返回temp复数,此时的temp就是lhs和rhs的和

return temp;

}

静多态面向对象编程

其实面向对象编程(Object-Oriented Programming)中也表现为函数重载和运算符重载。

函数重载:成员函数重载,静态成员函数(static)重载,虚函数重载,友元函数重载。

class Complex {

public:

// 构造函数重载:

Complex() : m_real(0), m_image(0) { };

Complex(double real, double image) : m_real(real), m_image(image) { };

// 静态成员函数重载:不恰当的例子

staticvoid staticFunc()

{

std::cout << "staticFunc()" << std::endl;

}

staticvoid staticFunc(int oneParam)

{

std::cout << "staticFunc(int oneParam)" << std::endl;

}

// 虚函数重载:不恰当的例子

virtualvoid virtualFunc()

{

std::cout << "virtualFunc()" << std::endl;

}

virtualvoid virtualFunc(int oneParam)

{

std::cout << "virtualFunc(int oneParam)" << std::endl;

}

// 虚函数重载:不恰当的例子。其友元函数就是一般的全局函数

friendvoid friendFunc();

friendvoid friendFunc(int oneParam);

// 运算符重载:Comple Comple

// Complex Complex成员版本:允许一个complex对象和另一个Complex对象相加

Complex operator (const Complex& elem)

{

return Complex(m_real elem.m_real, m_image elem.m_image);

}

// Complex double成员版本:允许一个complex对象和另一个double对象相加

// 只能是Complex double,不能是double Complex

Complex operator (double elem)

{

return Complex(m_real elem, m_image);

}

// Complex Complex友元版本:允许一个complex对象和另一个Complex对象相加

friend Complex operator (const Complex& lsh, const Complex& rhs)

{

return Complex(lsh.m_real rhs.m_real, lsh.m_image rhs.m_image);

}

// Complex double友元版本:允许一个complex对象和另一个double对象相加

// 只能是Complex double,不能是double Complex

friend Complex operator (const Complex& lsh, double rhs)

{

return Complex(lsh.m_real rhs, lsh.m_image);

}

// double Complex友元版本:允许一个double对象和另一个Complex对象相加

//只能是double Complex,不能是Complex double

//和上面的Complex double友元版本相辅相成

friend Complex operator (double lhs, const Complex& rhs)

{

return Complex(lhs rhs.m_real, rhs.m_image);

}

private:

double m_real;

double m_image;

};

void friendFunc()

{

std::cout << "virtualFunc()" << std::endl;

}

void friendFunc(int oneParam)

{

std::cout << "virtualFunc(int oneParam)" << std::endl;

}

运算符重载:运算符成员式重载,运算符友元式重载。

注:见Complex类定义中的运算符重载部分!

静多态泛型编程

在C 中,泛型编程(Generic Programming) 是通关过模板来实现的,然而模板不是与上述两种编程范例有所不同,它必须依附于上述的某种范例,在某范例的基础上来实现,就像面向对象和过程化编程的关系一样。下面就是模板分类:

按泛化对象可分为:

1)类型泛化(Type):

template

class List {

// ...

};

List iList; // iList是能够存储int类型的链表对象

2)数值泛化(Value):

template

class Bit {

// ...

};

Bit<3> bit3; // bit3是长度为3位的位对象

3)数值和类型泛化(Type & Value):

template

class Array {

// ...

};

Array iArray3; // iArray3是能够存储3个int类型的数组对象

按泛化的载体可分为:

函数模板:

template

void functionGeneric()

{

// ...

}

类模板:

template

class classGeneric {

// ...

};

运算符重载相关推荐
  • 相关百科
  • 相关知识
  • 相关专栏