基本信息
时间:2024.08.27
QT版本:5.14.2
平台:window 10
程序简介:
1.本工程是Qt基础类和基本数据类型专题例程,QPoint坐标类
2.本工程对照着Qt的帮助文档,把每个属性和成员函数测试了一遍
3.本工程,为学习Qt的其它类,其它帮助文档中的内容,留下一个模版
程序说明:
1.打印每个成员函数的帮助信息
2.每个按钮,验证一个成员函数
3.pro文件,添置CONFIG += console,输出重定向到控制台
4.toCGPoint、QDataStream,这2项相关,暂未测试验证
QPoint类帮助中的2种操作符重载
在查阅QPoint类的帮助文档中,注意到,同样的操作符重载,有2种,一种是返回的引用,一种是返回的副本。
这也是我在查阅完文档之后,决定把测试程序的按钮把引用和副本标出来的原因,否则不必这么麻烦。
关于标准C++的操作符重载,不是这里的重点,不过多赘述,请参考其它资料。
操作符重载,最通俗易懂的理解,就是“可以将类对象像基本数据类型一样,进行+ - * / 的运算”。
举例:
int a=1;
intb=2;
//这里的+的2个操作数是int类型的
int sum=a+b;
加法操作符重载之后,可以进行类对象的加法,举例如下:
Object obj1;
Object obj2;
Object objSum;
//这里的+的2个操作数不是基本数据类型,是类对象
objSum=obj1+obj2;
Qt的帮助文档中,关于加法操作符的重载,有如下2段,请注意看!
第1段,这里返回的是引用
QPoint &QPoint::operator+=(const QPoint &point)
Adds the given point to this point and returns a reference to this point. For example:
将给定点添加到此点,并返回对此点的引用。例如:
QPointp( 3, 7);
QPoint q(-1, 4);
p += q; // p becomes (2, 11)
See also operator-=().
第2段,这里返回的是副本,即对象,即复制了一个对象,这是要开辟内存,占用内存的。
const QPointoperator+(const QPoint&p1, const QPoint&p2)
Returns a QPointobject that is the sum of the given points, p1 and p2; each component is added separately.
返回一个QPoint对象,它是给定点p1和p2的总和;每个组件都是单独添加的。
See also QPoint::operator+=().
【题外话】
这里不吐不快。非常感谢年轻时遭受的白眼与轻蔑,没有这些,想必前进的动力也会少了很多。
记得我刚毕业的时候,刚踏入社会走向工作时,曾经在闲聊时,向项目合作中来自上海的2个同事,请教关于内存的重要性,问了句“为什么行业内的前辈都在强调内存的重要性,网上写文章都说,调试的时候要注意看内存,内存怎么看啊?”
这2个来自上海的同事,一男一女,男的是博士,女的是老板的关系户,这2个人都摇头和我说“不知道,不会”。
我当时一脸疑惑,不能吧~!他们工作这么多年,怎么可能不会啊!这水平也一般般啊!
现在回再回想起来,人家怎么可能是水平一般般,怎么可能是不会,只不过,当前的我,还不具备和人家对话的能力和条件罢了,就算人家花时候给我讲一讲,我大概率也听不懂,胡乱还会再问一堆问题,人家就算花时间给我讲了,我可能还是一知半解。人家只不过是没必要给我讲罢了。
还好,本人比较有自知知明,没有过多打扰。这些年,这个瞬间也没有忘记。也激励自己不断的学习、积累、前进、提高。
重要成员函数举例6个
这里,最基本的获取坐标,point.x()和point.y()等,rx(),ry()等不再详细介绍、不再贴代码了。
工程上传至优快云,供同一时期学习QT的网友参考,可自行查看。
这里仅介绍新手小白可能值得一看的内容贴出来。
程序全貌
这个练习程序,是对照着QT中QPoint的帮助文档,一个一个测试形成的。全貌如下图:
bool QPoint::isNull() const
程序运行效果如下:
qDebug()<<"帮助:如果x和y坐标都设置为0,则返回true,否则返回false。";
QPoint p1(0,0);
QPoint p2(300,200);
qDebug()<<"p1的原坐标是:"<<p1.x()<<","<<p1.y();
qDebug()<<"p2的原坐标是:"<<p2.