想的快疯了,求教个问题
c++吧
全部回复
仅看楼主
level 9
影圣天 楼主
#include <iostream>
using namespace std;
class Complex
{
private:
double real;
double image;
public:
Complex(double real=0.0,double image=0.0)
{
this->real=real;this->image=image;
}
void display()
{
cout<<"("<<real<<","<<image<<")"<<endl;
}
};
class PComplex
{
private:
Complex * PC;
public:
PComplex(Complex * PC=NULL)
{
this->PC=PC;
}
Complex * operator ->()
{
static Complex NullComplex(0,0);
if(PC==NULL)
return &NullComplex;
return PC;
}
};
void main()
{
PComplex P1;
P1->display();
Complex C1(100,200);
P1=&C1;
P1->display();
}
重载了->这个运算符,根据这个函数来看,他是返回了一个地址,又因为->是一元运算符,所以P1->等价与指针,然后P1->display就等价与"指针display"。一个指针加上一个成员函数应该起不到调用函数的作用吧?请问他是怎么实现一个对象利用重载后的->调用成员函数的?[乖]
2015年12月23日 07点12分 1
level 9
影圣天 楼主
[不高兴]
2015年12月23日 07点12分 2
[呵呵]
2015年12月23日 07点12分

2015年12月23日 08点12分

2015年12月23日 08点12分
level 9
影圣天 楼主
继续等待[呵呵]
2015年12月23日 09点12分 4
1