[C++ 核心编程]笔记 4.1.4 类和对象 - 案例1

类和对象:

案例1:

设计立方体类(Cube)

  1. 求出立方体的面积和体积
  2. 分别用全局函数和成员函数判断两个立方体是否相等。

设计方法:

  1. 创建立方体类
  2. 设计属性
  3. 设计行为 求立方体面积和体积
  4. 分别用全局和成员函数 判断立方体是否相等
#include<iostream>
using namespace std;



class Cube
{
public:
	//设置长
	void setL(int l)
	{
		m_L = l;
	}
	//获取长	
	int getL()
	{
		return m_L;
	}
	
	//设置宽
	void setW(int w)
	{
		m_W = w;
	}
	//获取宽
	int getW()
	{
		return m_W;
	}

	//设置高
	void setH(int h)
	{
		m_H = h;
	}
	//获取高
	int getH()
	{
		return m_H;
	}
	//获取立方体面积
	int calculateS()
	{
		return 2 * (m_L * m_W + m_L * m_H + m_W * m_H);
	}
	//获取立方体体积
	int calculateV()
	{
		return m_H * m_L * m_W;
	}

	//利用成员函数判断两个立方体是否相等
	bool isSameByClass(Cube &c)
	{
		if (m_L == c.getL() && m_W == c.getW() && m_H == c.getH())
		{
			return true;
		}
		return false;
	}




private:
	//属性
	int m_L;
	int m_W;
	int m_H;
};

//利用全局函数判断 两个立方体是否相等
bool isSame(Cube &c1, Cube &c2)
{
	if (c1.getH() == c2.getH() && c1.getL() == c2.getL() && c1.getW() == c2.getW())
		return true;
	return false;
}


int main()
{
	Cube c1;
	c1.setL(10);
	c1.setH(10);
	c1.setW(10);

	cout << "c1的面积为: " << c1.calculateS() << endl;
	cout << "c1的体积为: " << c1.calculateV() << endl;
	
	//创建立方体c2
	Cube c2;
	c2.setL(10);
	c2.setH(10);
	c2.setW(10);

	cout << "c2的面积为: " << c2.calculateS() << endl;
	cout << "c2的体积为: " << c2.calculateV() << endl;

	//利用全局函数判断
	bool ret = isSame(c1, c2);//注意不要漏数据类型
	if (ret == true)
		cout << "立方体完全相等" << endl;
	else
		cout << "立方体不完全相等" << endl;

	//利用成员函数判断
	ret = c1.isSameByClass(c2);
	if (ret == true)
		cout << "成员函数判断: 立方体完全相等" << endl;
	else
		cout << "成员函数判断: 立方体不完全相等" << endl;
	system("pause");
	return 0;
}

运行结果如下:
在这里插入图片描述
设计完成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/891430.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

音频剪辑在线工具 —— 让声音更精彩

你是否曾梦想过拥有自己的声音创作空间&#xff0c;却苦于复杂的音频编辑软件&#xff1f;接下来&#xff0c;让我们一同揭开这些音频剪辑在线工具的神秘面纱&#xff0c;看看它们如何帮助你实现从录音到发布的无缝衔接。 1.福昕音频剪辑 链接直达>>https://www.foxits…

勇攀保研高峰:解锁环节与要点,更容易上岸成功

在大学的逐梦之旅中&#xff0c;保研宛如一座令人向往的学术高峰&#xff0c;吸引着无数优秀学子奋力攀登。对于那些渴望在学术道路上更进一步的同学来说&#xff0c;了解保研的各个环节和考察要点至关重要。那么&#xff0c;保研究竟有着怎样的神秘路径呢&#xff1f;让我们一…

ArcGIS中分区统计栅格值前需要进行投影吗(在投影坐标系下进行吗),为什么?

最近&#xff0c;我接到了一个分区统计栅格数值前需要进行投影&#xff0c;或者说是必须需要在投影坐标系下进行吗的咨询。 答案是不需要刻意去变。 但是他又说他把地理坐标系下分区统计结果与投影坐标系下的分区统计结果分别做了一遍&#xff0c;并进行了对比&#xff0c;两个…

day11-SpringMVC

一、SpringMVC 1.SpringMVC流程分析 2.各种注解 3.接收请求参数 3.1 简单类型 3.2 对象类型 3.3 数组类型 3.4 集合类型 3.5 日期类型 3.6 json参数类型 3.7 路径参数 二、统一异常处理 三、Restful

基础教程 | 用VuePress搭建一个简单的个人博客(附源码)

先附上自己个人博客页面&#xff1a;https://illusionno.github.io/ 源码也在这里&#xff1a;https://github.com/illusionno/my-blog &#xff08;如果觉得有帮助&#xff0c;可以点颗star✨&#xff09; 使用的主题是vuepress-theme-reco2.x&#xff0c;并在上面进行了一些调…

软考——计算机网络概论

&#x1f550;计算机网络分类 1️⃣通信子网和资源子网 通信子网&#xff1a;通信节点&#xff08;集线器、交换机、路由器等&#xff09;和通信链路&#xff08;电话线、同轴电缆、无线电线路、卫星线路、微博中继线路和光纤缆线&#xff09;。用户资源子网&#xff1a;PC、…

快速理解http的get和post

在网络通信中&#xff0c;HTTP 协议扮演着非常重要的角色&#xff0c;而不同的 HTTP 方法决定了客户端与服务器之间的交互方式。 这里讲一下最常用的两种方法——GET 和 POST。 一、GET 方法 GET 方法用于从服务器获取资源。 这就像去图书馆借书——你向图书馆请求一本特定的…

理解智能合约:区块链在Web3中的运作机制

随着区块链技术的不断发展&#xff0c;“智能合约”这一概念变得越来越重要。智能合约是区块链应用的核心之一&#xff0c;正在推动Web3的发展&#xff0c;为数字世界带来了前所未有的自动化和信任机制。本文将深入探讨智能合约的基本原理、运作机制&#xff0c;以及它在Web3生…

如何破解 AI 聊天机器人让它们吐露秘密!窥探 AI 系统指令的 10 种技巧

​ 有时&#xff0c;为了确保 AI 的安全性和透明性&#xff0c;用户需要自己动手&#xff0c;揭开系统指令的面纱。 如果人工智能现在已经成为生活中的事实&#xff0c;并影响着我们的福祉&#xff0c;人们理应知道它的运作原理。 对一些人来说&#xff0c;科幻电影中的经典…

docker (desktopcompose) download

docker docker-compose download 百度网盘获取离线包链接release-notes 参考dockerdocker-composewlspowershell

live2d 实时虚拟数字人形象页面显示,对接大模型

live2dSpeek 测试不用gpu可以正常运行 https://github.com/lyz1810/live2dSpeek 运行的话还需要额外下载https://github.com/lyz1810/edge-tts支持语音 ## 运行live2dSpeek >npm install -g http-server >http-server . ## 运行edge-tts python edge-tts.py

WordPress+Nginx 安装教程

WordPress 是一个开源的网站建设工具&#xff0c;可以用它来“快速”搭建个人博客&#xff0c;官网等等。它本身是用 php 开发的&#xff0c;本身部署不复杂&#xff0c;主要是需要一些配套的东西才能跑起来&#xff0c;网上的一些教程也是写的不清不楚&#xff0c;本文针对非 …

达梦DM数据库insert into语句成功执行但查看时没有数据

在达梦DM数据库insert into语句成功执行后&#xff0c;查看数据时发现该数据没有新增成功。是因为没有提交事物&#xff0c;需要点击✔按钮提交事物。

服务器虚拟化的好处有哪些

1.什么是服务器虚拟化&#xff1f; 在计算服务中&#xff0c;有7种虚拟化包括硬件虚拟化&#xff08;即服务器虚拟化&#xff09;、软件虚拟化、内存虚拟化、存储虚拟化、数据虚拟化、网络虚拟化和桌面虚拟化。 其中&#xff0c;服务器虚拟化的初衷是让Windows和Linux操作系统…

沈阳化工大学第十一届程序设计沈阳区竞赛:凿冰 Action(博弈论,思维)

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 北极探险队有新收获了&#xff01;&#xff01;&#xff01; 北极探险队发现了NNN条长度不一的冰柱&#xff0c;由于冰柱里封存有价值的生物&#xff0c;现在需要两名生物学家小A和小…

JAVA就业笔记4——第二阶段(1)

课程须知 A类知识&#xff1a;工作和面试常用&#xff0c;代码必须要手敲&#xff0c;需要掌握。 B类知识&#xff1a;面试会问道&#xff0c;工作不常用&#xff0c;代码不需要手敲&#xff0c;理解能正确表达即可。 C类知识&#xff1a;工作和面试不常用&#xff0c;代码不…

力扣第1题:两数之和(图解版)

Golang版本 func twoSum(nums []int, target int) []int {m : make(map[int]int)for i : range nums {if _, ok : m[target - nums[i]]; ok {return []int{i, m[target - nums[i]]}} m[nums[i]] i}return nil }

Apache Doris介绍

Apache Doris 的发展 Apache Doris 是一款基于 MPP 架构的高性能、实时的分析型数据库&#xff0c;以高效、简单、统一的特点被人们所熟知&#xff0c;仅需亚秒级响应时间即可返回海量数据下的查询结果&#xff0c;不仅可以支持高并发的点查询场景&#xff0c;也能支持高吞吐的…

【Docker系列】Docker查看镜像架构

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

MeterSphere接口自动化平台调试

1。后置脚本节目 //导入json包 import org.json.*; import com.decode.DecodeMain; String responseprev.getResponseDataAsString(); String result DecodeMain.DecodeUtil(response); log.info(“获取批次账单id result:”result); //转换为Object对象类型 JSONObject data_…