请解释下C++的运算符重载功能,谢谢! 30
3个回答
展开全部
多态性是面向对象程序设计的重要特征之一.
所谓多态性是指发出同样的消息被不同类型的对象接收时导致完全不同的行
为。这里所说的消息主要是指对类的成员函数的调用,而不同的行为是指不同的
实现。利用多态性,用户只需发送一般形式的消息,而将所有的实现留给接收消
息的对象。对象根据所接收到的消息而做出相应的动作(即操作)。
函数重载和运算符重载是简单一类多态性
运算符重载就是赋予已有的运算符多重含义。C++中通过重新定义运算符,使
它能够用于特定类的对象执行特定的功能,这便增强了C++语言的扩充能力。
它允许你为类的用户提供一个直觉的接口
通过重载类上的标准算符,你可以发掘类的用户的直觉。使得用户程序所用
的语言是面向问题的,而不是面向机器的。
用户重载新定义运算符,不改变原运算符的优先级和结合性。
运算符重载实际是一个函数,所以运算符的重载实际上是函数的重载。
运算符重载时必须遵循哪些原则
(1) 重载运算符含义必须清楚。
(2) 重载运算符不能有二义性。
所谓多态性是指发出同样的消息被不同类型的对象接收时导致完全不同的行
为。这里所说的消息主要是指对类的成员函数的调用,而不同的行为是指不同的
实现。利用多态性,用户只需发送一般形式的消息,而将所有的实现留给接收消
息的对象。对象根据所接收到的消息而做出相应的动作(即操作)。
函数重载和运算符重载是简单一类多态性
运算符重载就是赋予已有的运算符多重含义。C++中通过重新定义运算符,使
它能够用于特定类的对象执行特定的功能,这便增强了C++语言的扩充能力。
它允许你为类的用户提供一个直觉的接口
通过重载类上的标准算符,你可以发掘类的用户的直觉。使得用户程序所用
的语言是面向问题的,而不是面向机器的。
用户重载新定义运算符,不改变原运算符的优先级和结合性。
运算符重载实际是一个函数,所以运算符的重载实际上是函数的重载。
运算符重载时必须遵循哪些原则
(1) 重载运算符含义必须清楚。
(2) 重载运算符不能有二义性。
展开全部
运算符重载功能,主要是使有关运算符能够运用到自定义的类类型,使得程序简单明了,易读易懂。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
自定义类的赋值运算符重载函数的作用与内置赋值运算符的作用类似,但是要要注意的是,它与拷贝构造函数与析构函数一样,要注意深拷贝浅拷贝的问题,在没有深拷贝浅拷贝的情况下,如果没有指定默认的赋值运算符重载函数,那么系统将会自动提供一个赋值运算符重载函数。
几乎所有的运算符都可用作重载。具体包含:
算术运算符:+,-,*,/,%,++,--;
位操作运算符:&,,~,^,<<,>>
逻辑运算符:!,&&,;
比较运算符:<,>,>=,<=,==,!=;
赋值运算符:=,+=,-=,*=,/=,%=,&=,=,^=,<<=,>>=;
其他运算符:[],(),->,,(逗号运算符),new,delete,new[],delete[],->*。
下列运算符不能重载:
.,.*,::,?:
几乎所有的运算符都可用作重载。具体包含:
算术运算符:+,-,*,/,%,++,--;
位操作运算符:&,,~,^,<<,>>
逻辑运算符:!,&&,;
比较运算符:<,>,>=,<=,==,!=;
赋值运算符:=,+=,-=,*=,/=,%=,&=,=,^=,<<=,>>=;
其他运算符:[],(),->,,(逗号运算符),new,delete,new[],delete[],->*。
下列运算符不能重载:
.,.*,::,?:
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询