当前位置: 首页 > news >正文

类的组合

类的组合

  • 网上听课,讲的有点朦胧,代码又不全面.....觉得有点云里雾里,就从按一段段自己码加修改,码了一个计算两个点距离的组合
#include<iostream>
#include<cmath>
using namespace std;
class Piont{
    public :
        Piont();//默认构造函数
        Piont(int x,int y);//构造函数
        Piont(const Piont&);//复制构造函数
        ~Piont();//析构函数,目前没什么鸟用...
        int getX();//获得对象内部的X
        int getY();//获得对象内部的Y
    private :
        int X,Y;
};
Piont::Piont(int x,int y):X(x),Y(y){
}
Piont::Piont():Piont(0,0){
}
Piont::Piont(const Piont &p)
{
    X=p.X;
    Y=p.Y;
}
Piont::~Piont(){
}
int Piont::getX()
{
    return X;
}
int  Piont::getY()
{
    return Y;
}
class Line{
    public :
        Line(Piont pstart,Piont pend);//构造函数,参数为两个对象
        double getLength();//求两点之间的距离
    private :
        Piont start,end;
};
Line::Line(Piont pstart,Piont pend):start(pstart),end(pend){
}
double Line::getLength()
{
    double length,newX,newY;
    newX=fabs(start.getX()-end.getX());
    newY=fabs(start.getY()-end.getY());
    length=sqrt(pow(newX,2)+pow(newY,2));
    return length;
}
int main()
{
    Piont p1,p2(3,4),p3(5,6);
    Line line1(p1,p2),line2(p2,p3);
    cout<<"p1的属性为:X="<<p1.getX()<<"Y="<<p1.getY()<<endl;
    cout<<"p2的属性为:X="<<p2.getX()<<"Y="<<p2.getY()<<endl;
    cout<<"line1的长度为:"<<line1.getLength()<<endl;
    cout<<"p2的属性为:X="<<p2.getX()<<"Y="<<p2.getY()<<endl;
    cout<<"p3的属性为:X="<<p3.getX()<<"Y="<<p3.getY()<<endl;
    cout<<"line2的长度为:"<<line2.getLength()<<endl;
    return 0;
}

1350350-20180326205301493-460022040.png

其实也就是之前类里面的int,double成员换成class,并无多大区别。

转载于:https://www.cnblogs.com/flyingbrid-nest/p/8653792.html

相关文章:

  • 模块------计算对数
  • 安装vue开发环境→安装淘宝镜像的时候报错
  • Python生成随机验证码
  • Java执行JavaScript代码
  • c#数字图像处理(十一)图像旋转
  • C语言——第二次作业(2)
  • Mark
  • winform httpclient 多文件上传
  • 一维数组高效率解决杨辉三角
  • 使用 Except 和 Intersect
  • ES6 使用forEach遍历数组
  • 初学MySQL基础知识笔记--02
  • Shell报错bash^M /bin/bash^M: bad interpreter: No such file or directory
  • TFRecords文件的生成和读取(1)
  • lis最长递增子序列
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • co.js - 让异步代码同步化
  • es6要点
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Javascript弹出层-初探
  • PermissionScope Swift4 兼容问题
  • V4L2视频输入框架概述
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 程序员该如何有效的找工作?
  • 创建一种深思熟虑的文化
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 离散点最小(凸)包围边界查找
  • 前言-如何学习区块链
  • 区块链技术特点之去中心化特性
  • 我与Jetbrains的这些年
  • 小程序开发中的那些坑
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • ​【已解决】npm install​卡主不动的情况
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #DBA杂记1
  • $ git push -u origin master 推送到远程库出错
  • %@ page import=%的用法
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (附源码)ssm码农论坛 毕业设计 231126
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)visual stdio 书签功能介绍
  • (转)我也是一只IT小小鸟
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • **PHP二维数组遍历时同时赋值
  • .md即markdown文件的基本常用编写语法
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .net mvc 获取url中controller和action
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .net 托管代码与非托管代码
  • .NET 指南:抽象化实现的基类
  • .NET6 命令行启动及发布单个Exe文件
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接