主要练习 :在类中可以让另一个类作为本类的成员。

案例:判断点和圆的位置关系。

一、第一种直接方法

using namespace std;
#include <iostream>
class point
{
public:
void setx(int x)
{
m_x = x;
}
int getx()
{
return m_x;
}
void sety(int y)
{
m_y = y;
}
int gety()
{
return m_y;
}
private:
int m_x;
int m_y;
};
class circle
{
public:
void setr(int r)
{
m_r = r;
}
int getr()
{
return m_r;
}
void setcenter(point center)
{
m_center = center;
}
point getcenter()
{
return m_center;
}
private:
int m_r;
point m_center;
};
void compare(circle &c,point &p)
{
int disance=
(c.getcenter().getx() - p.getx())* (c.getcenter().getx() - p.getx()) +
(c.getcenter().gety() - p.gety()) * (c.getcenter().gety() - p.gety());
int rdisance=c.getr()* c.getr();
if (rdisance == disance) cout << "点在圆上";
else if (rdisance > disance) cout << "点在圆内";
else cout << "点在圆外";
}
int main() {
point p;
circle c;
c.setr();//半径长度
point senter;
senter.setx();//圆的坐标
senter.sety();
c.setcenter(senter);
p.setx();//点的坐标
p.sety();
compare(c,p);
return ;
}

二、分开代码

源.cpp中的代码

using namespace std;
#include <iostream>
#include "point.h"
#include "circle.h"
void compare(circle &c,point &p)
{
int disance=
(c.getcenter().getx() - p.getx())* (c.getcenter().getx() - p.getx()) +
(c.getcenter().gety() - p.gety()) * (c.getcenter().gety() - p.gety());
int rdisance=c.getr()* c.getr();
if (rdisance == disance) cout << "点在圆上";
else if (rdisance > disance) cout << "点在圆内";
else cout << "点在圆外";
}
int main() {
point p;
circle c;
c.setr();
point senter;
senter.setx();
senter.sety();
c.setcenter(senter);
p.setx();
p.sety();
compare(c,p);
return ;
}

point.h中的代码

#pragma once
#include <iostream>
using namespace std;
class point
{
public:
void setx(int x);
int getx();
void sety(int y);
int gety();
private:
int m_x;
int m_y;
};

point.cpp中的代码

#include "point.h"
void point ::setx(int x)
{
m_x = x;
}
int point::getx()
{
return m_x;
}
void point::sety(int y)
{
m_y = y;
}
int point::gety()
{
return m_y;
}

circle.h中的代码

#pragma once
#include <iostream>
using namespace std;
#include "point.h"
class circle
{
public:
void setr(int r);
int getr();
void setcenter(point center);
point getcenter();
private:
int m_r;
point m_center;
};

circle.cpp中的代码

#include "circle.h"
#include "point.h"
using namespace std;
void circle::setr(int r)
{
m_r = r;
}
int circle::getr()
{
return m_r;
}
void circle::setcenter(point center)
{
m_center = center;
}
point circle::getcenter()
{
return m_center;
}

C++类和对象的封装 点和圆的案例的更多相关文章

  1. 01 语言基础+高级:1-2 面向对象和封装_day06【类与对象、封装、构造方法】

    day06[类与对象.封装.构造方法] 面向对象类与对象三大特征——封装构造方法 能够理解面向对象的思想能够明确类与对象关系能够掌握类的定义格式能够掌握创建对象格式,并访问类中的成员能够完成手机类的练 ...

  2. Python中用类实现对象和封装

    """ 用类实现对象和封装 对象:对应客观世界的事物,将描述事物的一组数据和与这组数据有关的操作封装在一起, 形成一个实体,这个实体就是对象 类:具有相同或相似性质的对象 ...

  3. java第2天:类,对象,封装和构造方法

    1 面向对象简述 将 {1,3,45,56,78,90}转化为[1,3,45,56,78,90] 1-2 方法1:面向过程 代码块 public class test { public static ...

  4. oop面向对象【类与对象、封装、构造方法】

    今日内容 1.面向对象 2.类与对象 3.三大特征——封装 4.构造方法 教学目标 1.能够理解面向对象的思想 2.能够明确类与对象关系 3.能够掌握类的定义格式 4.能够掌握创建对象格式,并访问类中 ...

  5. day06_类与对象、封装、构造方法

    02_面向对象与常用类 01_面向对象思想的概述 面向过程:当需要实现一个功能的时候,每个具体的步骤都需要亲力亲为,详细处理每一个细节. 面向对象:当需要实现一个功能的时候,不关心具体步骤,而是找一个 ...

  6. java语言基础(四)_面向对象_类_对象_封装_构造

    面向对象 Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下,使用Java语言去设计.开发计算机程序. 这里的对象泛指现实中一切事物,每种事物都具备 ...

  7. 如何讲清楚 Java 面向对象的问题与知识?(类与对象,封装,继承,多态,接口,内部类...)

    写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...

  8. Java(100-113)【类与对象、封装、构造方法】

    1.对象的创建以及使用 Student stu =new Student(); 根据一个类创建一个对象 导包.创建.使用 2.手机练习 有main才能run Phone.java package cn ...

  9. Java—面向对象、类与对象、封装

    理解什么是面向过程.面向对象 面向过程与面向对象都是我们编程中,编写程序的一种思维方式. 面向过程的程序设计方式,是遇到一件事时,思考“我该怎么做”,然后一步步实现的过程. 面向对象的程序设计方式,是 ...

随机推荐

  1. 全栈的自我修养: 0005 Java 包扫描实现和应用(Jar篇)

    全栈的自我修养: 0005 Java 包扫描实现和应用(Jar篇) It's not the altitude, it's the attitude. 决定一切的不是高度而是态度. Table of ...

  2. mongoose子文档生成不了_id,查询困难的解决办法

    以下是我的数据库表 本来是想设置一个自增属性,比如listId,来定义我的子list,sliderlist这些,这样能确保他的唯一性,结果尝试了很久都无法成功,原生,插件都无法成功, 这两个网址是讲的 ...

  3. Django学习路12_objects 方法(all,filter,exclude,order by,values)

    Person.objects.all() 获取全部数据 def get_persons(request): persons = Person.objects.all() # 获取全部数据 contex ...

  4. 线程_使用multiprocessing启动一个子进程及创建Process 的子类

    from multiprocessing import Process import os # 子进程执行的函数 def run_proc(name): print("子进程运行中,名称:% ...

  5. 使用 MySQLi 和 PDO 向 MySQL 插入数据

    PHP MySQL 插入数据 使用 MySQLi 和 PDO 向 MySQL 插入数据 在创建完数据库和表后,我们可以向表中添加数据. 以下为一些语法规则: PHP 中 SQL 查询语句必须使用引号 ...

  6. PHP date_format() 函数

    ------------恢复内容开始------------ 实例 返回一个新的 DateTime 对象,然后格式化日期: <?php$date=date_create("2013-0 ...

  7. 珍藏多年的学习资料300G+,赶紧免费领取,从此离大神更进一步

    将时间线拉到2014     2014年的寒冬,每天早晨六点钟,都会一个弱小的身影,从学校寝室出发,走在去实习公司的路上.经过食堂边的包子铺,他会顺手买两个包子,一杯豆浆,老板也会像往常一样热情的吆喝 ...

  8. 探究:编程语言那么多,为什么偏偏是 C 语言成了大学的必修课?

    谁叫你不幸生在中国了? ——何祚庥(中国科学院院士) 这是一本给非计算机专业的大学生的C语言的书.“我不是学计算机的,为啥要学C语言?”这个问题每年在中华大地都会被问上几百万次.被问的对象可能是老师, ...

  9. CF EC 87 div2 1354 C2 Not So Simple Polygon Embedding 计算几何 结论

    LINK:Not So Simple Polygon Embedding 搞了好久终于搞会了. 错误原因 没找到合适算边长的方法 要么就是边长算的时候算错了. 几何学的太差了 最后虽然把十边形的和六边 ...

  10. bzoj 1738 [Usaco2005 mar]Ombrophobic Bovines 发抖的牛 最大流+二分

    题目要求所有牛都去避雨的最长时间最小. 显然需要二分 二分之后考虑如何判定. 显然每头牛都可以去某个地方 但是前提是最短路径<=mid. 依靠二分出来的东西建图.可以发现这是一个匹配问题 din ...