C++中 运算符重载 到底有什么何意义?
一直想不透这个问题,运算符重载与没重载前有什么不同,用operator定义一个运算符重载函数,不就和用一个其他名字的函数定义一个运算方式一样的吗?请高手指点,我层次交浅,...
一直想不透这个问题,运算符重载与没重载前有什么不同,用operator定义一个运算符重载函数,不就和用一个其他名字的函数定义一个运算方式一样的吗?
请高手指点,我层次交浅,请说得通俗点,用例说明最好,先谢谢!!!
是不是每个运算符在库里都有函数定义,而要是我们想要它做被的运算重载它就可以了 展开
请高手指点,我层次交浅,请说得通俗点,用例说明最好,先谢谢!!!
是不是每个运算符在库里都有函数定义,而要是我们想要它做被的运算重载它就可以了 展开
4个回答
2006-12-06 · 知道合伙人数码行家
关注
展开全部
的确是一样的,比如你重载了加号,其实是同样可以定义add()函数来完成相同的操作。
重载是为了让运算比较符合人的思维,比如定义一个矩阵类matrix
matrix a, b ,c;
//...
//初始化a、b的语句
c = a+b; //如果没有重载加号的话,这条就通不过编译了
只是这个+号你同样可以定义一个add函数来操作,如:
c = a.add(b);
你觉得哪种方法比较直观?
重载是为了让运算比较符合人的思维,比如定义一个矩阵类matrix
matrix a, b ,c;
//...
//初始化a、b的语句
c = a+b; //如果没有重载加号的话,这条就通不过编译了
只是这个+号你同样可以定义一个add函数来操作,如:
c = a.add(b);
你觉得哪种方法比较直观?
展开全部
运算符重载是一种特殊的函数重载。例如int a,b;则求a+b值时,在编译过程中使用的是函数调用:opertor+(a,b).主要作用就是使程序更加简洁,减少编程时间。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你想想如果两个时间相加,你用+号行吗?
你要是把+号重载一下,写一个你自己的+号运算方法不就可以了。
运算符重载就是自己定义符号
你要是把+号重载一下,写一个你自己的+号运算方法不就可以了。
运算符重载就是自己定义符号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2017-09-09
展开全部
运算符重载是一种特殊的函数重载。
c++的一大特性就是重载(overload),通过重载可以把功能相似的几个函数合为一个,使得程序更加简洁、高效。在c++中不止函数可以重载,运算符也可以重载。
由于一般数据类型间的运算符没有重载的必要,所以运算符重载主要是面向对象之间的。
在进行对象之间的运算时,程序会调用与运算符相对应的函数进行处理,所以运算符重载有两种方式:成员函数和友元函数。
成员函数的形式比较简单,就是在类里面定义了一个与操作符相关的函数。友元函数因为没有this指针,所以形参会多一个。
c++的一大特性就是重载(overload),通过重载可以把功能相似的几个函数合为一个,使得程序更加简洁、高效。在c++中不止函数可以重载,运算符也可以重载。
由于一般数据类型间的运算符没有重载的必要,所以运算符重载主要是面向对象之间的。
在进行对象之间的运算时,程序会调用与运算符相对应的函数进行处理,所以运算符重载有两种方式:成员函数和友元函数。
成员函数的形式比较简单,就是在类里面定义了一个与操作符相关的函数。友元函数因为没有this指针,所以形参会多一个。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询