函数链:middle(p,q).print( ) ;

例:

示例分析:

  ♠\spadesuit♠ 访问函数get_x,get_y以及print函数均为const成员函数;
  ♠\spadesuit♠ distance和middle函数为了避免传参时的拷贝和函数体内对实参的修改,指定形参为常引用类型;
  ♠\spadesuit♠ middle函数返回了一个const Point对象。middle函数也可以使用如下方式进行实现:


  ♠\spadesuit♠ 利用middle函数的返回值(一个点对象)再调用print成员函数。这被称作“函数链”;
  ♠\spadesuit♠ 在main函数中,声明了两个对象p和q,用q给p赋值,实现的是“逻辑拷贝”,又称“浅拷贝”。

附示例代码:
Point.h

#ifndef Point_h
#define Point_h#include<iostream>
using namespace std;
class Point
{public:Point(float a=0,float b=0);float get_x()const;float get_y()const;void move(float a,float b);//偏移量void print()const;
private:float x;float y;//一个点有一个x坐标和y坐标};
#endif

Point.cpp

#include"Point.h"Point::Point(float a,float b):x(a),y(b){}float Point::get_x()const{return x;}
float Point::get_y()const{return y;}//偏移量
void Point::move(float a,float b){x+=a;y+=b;}
void Point::print()const{cout<<"("<<x<<","<<y<<")"<<endl;}

main.cpp

#include<math.h>
#include"Point.h"float distance(const Point& p1,const Point& p2)
{float dx=p1.get_x()-p2.get_x();float dy=p2.get_y()-p2.get_y();return sqrt(dx*dx+dy*dy);
}const Point middle(const Point& p1,const Point& p2)
{return Point((p1.get_x()+p2.get_x())/2,(p1.get_y()+p2.get_y())/2);
}int main()
{Point p;Point q(1.0,2.0);float dx,dy;cout<<"第一个点的坐标为:";p.print();cout<<"第二个点的坐标为:";q.print();q=p;    //经过赋值,两个点都在原点位置 浅拷贝cout<<"赋值之后,第二个点的坐标为:";q.print();cout<<endl;cout<<"从键盘输入两个值,分别表示第一个点x,y方向的偏移量:";cin>>dx>>dy;//从键盘读入数据到dx和dy中p.move(dx,dy);cout<<"移动之后第一个点的坐标为:";p.print();cout<<endl;cout<<"从键盘输入两个值,分别表示第二个点x,y方向的偏移量:";cin>>dx>>dy;//从键盘读入数据到dx和dy中q.move(dx,dy);cout<<"移动之后第一个点的坐标为:";q.print();cout<<endl;//测试distance函数cout<<"两个点之间的距离为:"<<distance(p,q)<<endl;//测试middle函数cout<<"两个点的中间点坐标为:";middle(p,q).print();cout<<endl;return 0;
}

C++之一个函数链的简单例子(分文件实现)相关推荐

  1. 可变参数函数的一个简单例子

    这里只是简单的描述一下C语言中如何使用参数数量可变的函数,至于stdarg.h中关键宏如何实现以及编译器如何处理这些更底层的东西,以后再说. 我们知道,C语言中函数体包含三个要素:返回值类型.函数体. ...

  2. SSE2 Intrinsics各函数介绍 及简单例子

    转载地址 http://blog.csdn.net/fengbingchun/article/details/18460199 关于ARM上的SIMD可以参见网址,ARM上的SIMD技术叫NEON: ...

  3. python输入输出简单例子_Python 文件和流的简单示例

    这篇文章主要为大家详细介绍了Python 文件和流的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 1.打开文 ...

  4. VC API常用函数简单例子大全(1-89)

    第一个:FindWindow根据窗口类名或窗口标题名来获得窗口的句柄,该函数返回窗口的句柄 函数的定义:HWND WINAPI FindWindow(LPCSTR lpClassName ,LPCST ...

  5. VC API 常用函数简单例子大全

    第一个:FindWindow根据窗口类名或窗口标题名来获得窗口的句柄,该函数返回窗口的句柄 函数的定义:HWND WINAPI FindWindow(LPCSTR lpClassName ,LPCST ...

  6. VC API常用函数简单例子大全

    VC API常用函数简单例子大全 http://hi.baidu.com/tag/vc%20api%E5%87%BD%E6%95%B0/feeds 系统API查询 http://www.vbgood. ...

  7. MATLAB contour 和 contourf 函数 简单例子

    MATLAB contour 和 contourf 函数 简单例子 x = -10:0.1:10; y = 0:0.1:5; % 横向201个数 纵向51个数 [X,Y] = meshgrid(x,y ...

  8. java fork菜鸟_fork()函数的简单例子

    1.fork()函数 fork()是一个系统调用,用于创建进程.创建的这个进程与原来进程几乎完全相同.这个新产生的进程称为子进程.一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据 ...

  9. 镶嵌数据集工具小结(十)函数链

    镶嵌数据集中的函数 在下文中会提到的工具有这几个,先摆在这里,有个初步的记忆: 这个主题中,一起来看一下镶嵌数据集的函数. *不过首先需要额外了解,在 ArcGIS 中,其实除了镶嵌数据集,普通的栅格 ...

最新文章

  1. ​2021年机器学习什么风向?把注意力放在MLP上
  2. 企业项目构建学习(一)maven
  3. linux docker升级,CentOS上面升级Docker到最新版本
  4. 【C/C++多线程编程之五】pthread线程深入理解
  5. java无忧网_零基础java入门课程 - 学途无忧网 - 做技术的王者 - Powered By EduSoho
  6. fedora12下pppoe服务器的搭建
  7. [python交互]Excel催化剂与python交互原理剖析,py开发者按此规范可自行扩展功能...
  8. [Github项目推荐] 机器学习 Python 知识点速查表
  9. 在Activity启动过程中如何任务栈的栈顶是否是将要启动的Activity的实例
  10. 采用MATLAB的DSP调试方法
  11. EXP-00011: XX.tab does not exist
  12. POJ-2226 Muddy Fields 最小点集覆盖
  13. kuangbin带你飞dp专题-基础dp
  14. 海量小文件的开源存储方案选型建议
  15. Nginx从入门到精通(全)
  16. 计算机内部用机内码而不是国际码,在计算机内部用机内码而不用国标码表示汉字的原因是()。...
  17. linux如何后台执行程序?
  18. z世代消费力白皮书_猫哥清华新传考研|如何让Z世代粉上你?
  19. ISPRS2022/遥感:Cross-spatiotemporal LULC from VHR remote sensing images基于深度学习域适应的VHR遥感影像跨时空土地覆盖分类
  20. 如何实现无线网卡上外网+有线上内网=同时上网

热门文章

  1. react-redux基本写法
  2. 任意电脑登录MySQL_使用批处理命令注册运行mysql数据库,无需注册mysql服务,可以在任意电脑登录使用...
  3. 基于JAVA+SpringBoot+Mybatis+MYSQL的足球联赛管理系统
  4. 基于JAVA+SpringMVC+Mybatis+MYSQL的账单管理系统
  5. Rails运行时sqlite3报错问题的解决
  6. 2011 ACM 0和1思想
  7. SDUT 1157-小鼠迷宫问题(BFSamp;DFS)
  8. 11、Jsp加强/EL表达式/jsp标签
  9. P2P网贷第三方托管模式存在5大缺陷,护法是最大的赢家
  10. 一篇文章带你快速入门JavaScript(自学者福利)