c++中关于重载运算符的问题

class a
{
public:
abc->qqq;
operater ->(){return ccc;}
}
这时候 class a中的abc调用的是原有的C++运算符->还是重载的?

还有个问题
我发现很多C++代码中为什么类可以继承自结构?
比如:
class a:struct b
为什么结构中还能有方法?
比如:
struct b
{
void abc();
}

先不考虑->能不能重载,还有你重载的操作符函数是否正确。只要如果abc是类a的对象,就是调用的在类a中重载的->运算符(或者其他运算符),不会调用内置的->运算符。
在C++中,结构和类是一回事,当然可以继承自结构,结构和类的区别只是在于其默认的访问权限不一样,对于类来说,默认的访问权限为私有的,而对于结构而言,则是公有的,除了这点不一样之外,其他的地方和C++中的类是一模一样的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-04-07
你那个写法本身就有一定问题,运算符重载的话要制定类型啊,我不太记得指针运算符能不能重载了,我觉得应该是不行的,具体的你还要查阅一下c++primer,另外,在c++里面struct和class的概念查不多,只是不指定类型的话class中的成员是私有的但是strcut的成员是公有的而已本回答被提问者采纳
第2个回答  2010-04-07
同 1202040120,那个成员指针访问运算符“->”不能重载,即便重载,人家也是双目运算符,双目运算符是不能不给参数的 ....
第3个回答  2010-04-07
成员指针访问运算符“->”也就是“. *”是不能重载的!

求助,关于一道C++函数重载的问题
1、运算符重载不改变操作符原先的优先级、结合性和操作数数目,++是单目操作符,所以1不会成立的。你有这样的问题大概是因为双目操作符比如*,可以有x.operator*(y)这种写法吧? 但是这个不改变*是二目操作符的事实。C++规定:双目操作符重载作为成员函数时只能有一个形参,调用方为左操作数,形参...

C++哪些运算符不能重载?
C++中绝大部分的运算符允许重载。不能重载的运算符只有5个:(1). (成员访问运算符)。(2).* (成员指针访问运算符)。(3)∷(域运算符)。(4)sizeof(长度运算符)。(5)?: (条件运算符)。

关于C++重载运算符
(四) 重载不能改变运算符的优先级别。(五) 重载运算符的函数不能有默认的参数,否则就改变了运算符参数的个数,与前面第(3)点矛盾。(六) 重载的运算符必须和用户定义的自定义类型的对象一起使用,其参数至少应有一个是类对象(或类对象的引用)。也就是说,参数不能全部是C++的标准类型,以防止用...

C++重载运算符问题
另外一个问题就是,有的编译器会优化。上面的那个函数,即使改成先创建一个对象,然后再返回这个对象,如果是在dev-c++里,dev-c++就会做优化,不会调用复制构造函数。

c++重载运算符号
(2) 重载运算符限制在C++语言中已有的运算符范围内的允许重载的运算符之中,不能创建新的运算符。(3) 运算符重载实质上是函数重载,因此编译程序对运算符重载的选择,遵循函数重载的选择原则。(4) 重载之后的运算符不能改变运算符的优先级和结合性,也不能改变运算符操作数的个数及语法结构。(5) ...

关于C++重载的问题
首先作为‘+’操作符,应该是 value1 = value+i;的形式 重载函数中的第一个参数是指加号前的参数,第二个参数指加号后的参数,因此,除非有特殊要求,两个参数都不应有默认值。并将重载的操作符声明为类的友元函数。作为类中的成员函数 在函数参数中不应该定义两个参数,因为‘+’之前的参数默认...

黑马C++笔记 5.5 运算符重载
在C++中,运算符重载是一种技术,允许开发者为自定义类型定义新的运算符行为。不同于内置类型如int和double,编译器对这些类型已经内置了运算符的处理规则,但对自定义类型(如类或结构体)则需要我们通过重载来指定如何进行操作。运算符重载与函数重载(Overload)不同,后者在同一个作用域中通过参数列表...

c++运算符重载
c++的一大特性就是重载(overload),通过重载可以把功能相似的几个函数合为一个,使得程序更加简洁、高效。在c++中不止函数可以重载,运算符也可以重载。由于一般数据类型间的运算符没有重载的必要,所以运算符重载主要是面向对象之间的。在进行对象之间的运算时,程序会调用与运算符相对应的函数进行处理,...

C++中的运算符重载,帮我详细介绍下
(1)C++中的运算符除了少数几个以外,全部可以重载,而且只能重载已有的运算符。可以重载的运算符有:算术运算符:+,-,*,\/,%,++,--;位操作运算符:&,|,~,^,<<,>> 逻辑运算符:!,&&,||;比较运算符:<,>,>=,<=,==,!=;赋值运算符:=,+=,-=,*=,\/=,%=,&=,|=,^=,<...

C++运算符重载,+-*\/的重载,返回值为什么是对象而不是对象的引用?而流操...
原因是:+,-,*等返回不了引用,比如+运算符,可以如下重载(为了简单,假设A 只有int x;int y)A operator+(A a,A b) {A sum; sum.x=a.x+b.x; sum.y=a.y+b.y; return sum; } 分析不能用引用的原因: 函数传入了两个参数a,b,并且+只能传入两个参数(c++不允许自己...

相似回答
大家正在搜