【练习】友元类和友元函数

#include <iostream>
using namespace std;
class Circle;
class Point
{
private:
    float x;
    float y;
public:
    Point();
    Point(float a,float b);
    friend class Circle;
    friend const Point middle(const Point &u,const Point &v);
    void print()const;
};
Point::Point():x(0.0),y(0.0)
{
    cout << "Defalt constraction is called " << endl;
}
Point::Point(float a,float b):x(a),y(b){}
void Point::print()const
{
    cout << " x: " << x << " y " << y <<endl;
}
const Point middle (const Point &u,const Point &v )
{
    return Point ((u.x+v.x)/2.0,(u.y+v.y)/2.0);
}
class Circle
{
private:
    float radius;
    Point center;
public:
    Circle();
    Circle& move(float a,float b);
    void print()const;
};
Circle::Circle():radius(0.0)
{
    center.x = 0.0;
    center.y = 0.0;
}

Circle&Circle::move(float a,float b)
{
    center.x += a;
    center.y += b;
    return *this;
}
void Circle::print()const
{
    center.print();
    cout << "radius: " << radius <<endl;
}
int main()
{
    Point p1(1.0,2.0);
    Point p2(3.0,4.0);
    p1.print();
    p2.print();
    cout << "the diffrence between the two point is:" << endl;
    middle(p1,p2).print();
    Circle c;
    c.print();
    cout << "move the center:"<< endl;
    c.move(10.0,10.0);
    c.print();
    cout << "Hello World!" << endl;
    return 0;
}

 

转载于:https://www.cnblogs.com/666fengmo666/p/7806775.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值