• 6892阅读
  • 4回复

C++程序转Qt(重载操作符) [复制链接]

上一主题 下一主题
离线安德森
 
只看楼主 倒序阅读 楼主  发表于: 2013-12-16
最近写了一个基4的FFT程序,里面有些复数计算,所以重载了操作符。但不知道怎么改到QT里,QT里面Operator好像不是关键字。
代码:
class complex{public:    //无参构造函数    complex(){re=0;im=0;}    //有参构造函数    complex(double real,double imag){re=real;im=imag;}    //加法    complex operator + (complex& c)    {        return complex( re + c.re , im + c.im );    }    //减法    complex operator - (complex& c)    {        return complex( re - c.re , im - c.im );    }    //乘法    complex operator * (complex& c)    {        return complex( (re * c.re)-(im * c.im) , (re * c.im)+(im * c.re) );    }    //除法    complex operator / (complex& c)    {        return complex( ( re*c.re + im*c.im )/( c.re*c.re + c.im*c.im ),            ((im * c.re)-(re * c.im))/((c.re*c.re)+(c.im*c.im)) );    }    //设值    void setValue(double real,double imag);
private:    double re,im;};
离线XChinux

只看该作者 1楼 发表于: 2013-12-16
乱啊
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线彩阳

只看该作者 2楼 发表于: 2013-12-16
不用Complex,直接
#include <QVector2D>
typedef QVector2D Complex
即可。
上海Qt开发联盟,热忱地欢迎你的加入!
离线dbzhang800

只看该作者 3楼 发表于: 2013-12-17
引用楼主安德森于2013-12-16 09:21发表的 C++程序转Qt(重载操作符) :
最近写了一个基4的FFT程序,里面有些复数计算,所以重载了操作符。但不知道怎么改到QT里,QT里面Operator好像不是关键字。
代码:
class complex{public:    //无参构造函数    complex(){re=0;im=0;}    //有参构造函数    complex(double real,double imag){re=real;im=imag;}    //加法    complex operator + (complex& c)    {        return complex( re + c.re , im + c.im );    }    //减法    complex operator - (complex& c)    {        return complex( re - c.re , im - c.im );    }    //乘法    complex operator * (complex& c)    {        return complex( (re * c.re)-(im * c.im) , (re * c.im)+(im * c.re) );    }    //除法    complex operator / (complex& c)    {        return complex( ( re*c.re + im*c.im )/( c.re*c.re + c.im*c.im ),            ((im * c.re)-(re * c.im))/((c.re*c.re)+(c.im*c.im)) );    }    //设值    void setValue(double real,double imag);
private:    double re,im;};


格式太乱了。记住两点应该就够了。

1. C++ Qt是库,不是语言。C++的所有东西都可以直接使用
2. 中文注释在MSVC环境下可能会导致问题
离线安德森
只看该作者 4楼 发表于: 2013-12-19
回 3楼(dbzhang800) 的帖子
第一次发帖,不知道怎么粘代码,所以格式乱了。
C++的东西的确可以直接用,只要注意库就好了。
我下的QT是Mingw编译的(当然,creator是MSVC的)。
快速回复
限100 字节
 
上一个 下一个