24小时热门版块排行榜    

查看: 412  |  回复: 2
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

lixy1217

木虫 (著名写手)

[求助] C++运算符重载计算复数时如何识别this指针的类型

在C++中进行复数运算 a+b=c 通常用运算符重载如下:

class complex
{
private:
  double R;
  double I;
public:
  complex operator+(complex b)
  {
    complex c;
                c.R=this->R+b.R;
        c.I=this->I+b.I;
        return c;
  }
};

void main()
{
    complex a,b,c;
   c=a+b;
}

首先弱弱地问一句,这里的this是不是被加问题中变量a的指针?
如果是的话,那么接下来的问题是,如果在外部函数中 a 的类型并不是复数,也就是说我希望这个类能够同时实现实数与复数的相加运算,可否要先识别this指针的类型,然后再进行对应的运算。
那么又该用什么命令来识别this指针的类型呢?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

偶尔敞开心扉,世界将不再孤独
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

文俊点点

木虫 (著名写手)

【答案】应助回帖


jjdg(金币+1): 感谢参与 2011-11-02 01:40:27
lixy1217(金币+1): 多谢参与 2011-11-03 11:53:38
只是一个复数的问题要这么复杂,java里面对this的解释就是本类的对象。和这个也差不多·······
这是你所拥有的时间·····这是你所能改变的生活·········
3楼2011-11-01 19:53:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 3 个回答

夜色如水

新虫 (初入文坛)

【答案】应助回帖

lixy1217(金币+4): 谢谢答复。不过再重载一个+,只能实现复数+实数而不能实数+复数。如果面对减法和除法情形时要求 实数/复数 该怎么办? 2011-11-01 16:16:44
那个this可以不用写的,每个类都有一个this指针,并指向类的基地址。
应该能再重载一个+运算符,这样就能实现实数 复数想加
2楼2011-11-01 12:46:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见