QT友元函数

#ifndef POINT_H
#define POINT_H
class point
{
public:
    point(int x,int y);
    int getX();
    int getY();
    friend float dist(point &p1,point &p2);
private:
    int x,y;
};

#endif // POINT_H




#include "point.h"
#include<cmath>
#include<iostream>
 
 
point::point(int x,int y):x(x),y(y)
{
 
}
int point::getX(){return x;}
int point::getY(){return y;}
 

#include <QCoreApplication>
#include "point.h"
#include<cmath>
#include<iostream>
using namespace std;
 
float dist(point &p1,point &p2)
{
   double x=p1.x-p2.x;
   double y=p1.y-p2.y;
   return static_cast<float>(sqrt(x*x+y*y));
}
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
 
    point mp1(1,1),mp2(4,5);
    cout<<"The distance is"<<endl;
    cout<<dist(mp1,mp2)<<endl;
return 0;
    return a.exec();
}
 

                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt中,可以使用QDataStream类来实现对象的序列化和反序列化。序列化是将对象转换为字节流的过程,而反序列化则是将字节流转换回对象的过程。 要进行序列化,首先需要创建一个QFile对象,并以只写模式打开文件。然后,创建一个QDataStream对象,并将其与文件关联起来。接下来,可以使用QDataStream的<<操作符将对象写入到数据流中。例如,可以使用out << QString("hello world!");将字符串写入数据流中。 要进行反序列化,需要创建一个QFile对象,并以只读模式打开文件。然后,创建一个QDataStream对象,并将其与文件关联起来。接下来,可以使用QDataStream的>>操作符从数据流中读取对象。例如,可以使用in >> str;将字符串从数据流中读取出来。 对于自定义类或数据结构的序列化和反序列化,需要在自定义类中声明并实现友元函数友元函数可以访问类的私有成员,并将对象的数据写入或读取到数据流中。 需要注意的是,QDataStream只能序列化基本类型,对于其他类型,如自定义类或数据结构,需要在类中声明并实现友元函数友元函数的声明和实现分别使用<<和>>操作符。 QDataStream支持的数据类型包括bool、qint8、qint16、qint32、qint64、quint8、quint16、quint32、quint64、float、double、const char*、QBitArray、QBrush、QByteArray、QColor、QCursor、QDate、QDateTime、QEasingCurve、QFont、QGenericMatrix、QHash<Key, T>、QIcon、QImage、QKeySequence、QLinkedList<T>、QList<T>、QMap<Key, T>、QMargins、QMatrix4x4、QPair<T1, T2>、QPalette、QPen、QPicture、QPixmap、QPoint、QQuaternion、QRect、QRegExp、QRegularExpression、QRegion、QSize、QString、QTime、QTransform、QUrl、QVariant、QVector2D、QVector3D、QVector4D、QVector<T>等多种类型。[1][2][3]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值