C++类和对象——(10)综合示例

一、示例对象数组: 

#include<iostream>
using namespace std;class Point{private:int x,y;public:Point(int px=0,int py=0){x=px;y=py;}void init(int px=0,int py=0){x=px;y=py;}void print(){cout<<"("<<x<<","<<y<<")"<<endl;}
};int main(){Point *pArray=new Point[5];if(!pArray){cout<<"allocation error!"<<endl;return -1;}int x,y,k;for(k=0;k<5;k++){cin>>x>>y;pArray[k].init(x,y);}cout<<"Array of Point:"<<endl;for(k=0;k<5;k++){pArray[k].print();}delete[]pArray;return 0;
}

说明: 

        在执行“Point *pArray=new Point[5];”语句时,系统自动调用构造函数五次,按默
认值初始化动态声明五个对象。 

二、示例类的组合:

#include<iostream>
#include<cmath>
using namespace std;class Point{private:int x;int y;public:Point(int px,int py){x=px;y=py;}void print(){cout<<"("<<x<<","<<y<<")"<<endl;}friend class Triangle;
}; class Triangle{private:Point p1,p2,p3;public:Triangle(Point xp1,Point xp2,Point xp3):p1(xp1),p2(xp2),p3(xp3){}double GetArea();void display();
};double Triangle::GetArea(){double x1=p1.x-p2.x;double y1=p1.y-p2.y;double x2=p1.x-p3.x;double y2=p1.y-p3.y;double x3=p2.x-p3.x;double y3=p2.y-p3.y;double L1=sqrt(x1*x1+y1*y1);double L2=sqrt(x2*x2+y2*y2);double L3=sqrt(x3*x3+y3*y3);double s=(L1+L2+L3)/2;return sqrt(s*(s-L1)*(s-L2)*(s-L3));
}void Triangle::display(){cout<<"the Point of Tiangle are:"<<endl;p1.print();p2.print();p3.print();
}int main(){Point p1(3,4),p2(4,5),p3(3,9);Triangle t(p1,p2,p3);t.display();cout<<"三角形面积:"<<t.GetArea()<<endl; return 0;
}

说明: 

        Triangle是Point的组合类,里面包含三个Point对象。为了便于计算三角形边长(两点的距离),将Triangle声明为Point的友元类,这样就可以方便地访问Point类中的私有成员x和y。计算三角形面积时用到了已知三边边长求面积的海伦公式。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FFmpeg的AVInputFormat

文章目录 结构体定义操作函数支持的AVOutputFormat 通过上面的分析&#xff0c;基本可以看到ffmpeg的套路了&#xff0c;首先一个context上下文&#xff0c;上下文里面一个priv_data 指针&#xff0c;然后再插件结构体中有一个priv_data_size&#xff0c;然后回调函数。 结构体…

JVM-GC调优-字节码篇-01

笔记来源&#xff1a;JVM 注意&#xff1a;实在想学习可以看一下&#xff0c;让自己更加了解JVM&#xff0c;看起来可能会枯燥。 JVM-概述 1、你的问题 1.1你被JVM伤害过吗&#xff1f; 你是否也遇到过这些问题&#xff1f; 运行着的线上系统突然卡死&#xff0c;系统无法访…

Flink SQL: 高效解析 Kafka 数据并存储为 Parquet 至 HDFS

目录 总体流程介绍 1. 从 Kafka 读取数据 2. 使用 UDF 进行数据解析 3. 将

HTML中如何设置音频和视频?

文章目录 &#x1f50a;嵌入音频&#x1f39e;️嵌入视频 &#x1f50a;嵌入音频 HTML 元素用于在文档中嵌入音频内容。 元素可以包含一个或多个音频资源&#xff0c; 这些音频资源可以使用 src 属性或者 元素来进行描述&#xff1a;浏览器将会选择最合适的一个来使用。也可以使…

Centos7云服务器上安装cobalt_strike_4.7。附cobalt_strike_4.7安装包

环境这里是阿里的一台Centos7系统。 开始安装之前首先要确保自己安装了java11及以上环境。 安装java11步骤&#xff1a; sudo yum update sudo yum install java-11-openjdk-devel把服务器端&#xff08;CS工具分服务器端和客户端&#xff09;的CS安装到服务器上后给目录下的…

Mongoose 对象文档模型库

一、介绍 Mongoose是一个对象文档模型库&#xff0c;官网&#xff1a;http://www.mongoosejs.net/ 二、作用 方便使用代码操作Mongodb数据库 三、使用流程 //1. 安装 mongoose //2. 导入 mongoose const mongoose require(mongoose); //3. 连接数据库 mongoose.connect(m…

某省资源交易中心 (js逆向)

该文章只是用于逆向学习&#xff0c;不得以商用或者是破坏他人利益的目的进行使用。如有侵权请联系作者。 网站链接&#xff1a; bse64 aHR0cHM6Ly9nZ3p5ZncuZnVqaWFuLmdvdi5jbi9idXNpbmVzcy9saXN0Lw 分析环节 进入网站 进行翻页请求时我们会发现改请求时ajax请求。 这里&…

hive-窗口函数

1 窗口函数语法 分析函数/专用窗口函数 over(partition by 列名 order by 列名 rows between 开始位置 and 结束位置) 常用的分析函数 常用的分析函数&#xff1a;sum()、max()、min()、avg()、count() 常用的专用窗口函数 专用窗口函数&#xff1a;row_number()、rank()、dens…

【简易版】Linux下Protobuf 实现网络版通讯录--C++

一、介绍 该项目的主要目的是用于熟悉protobuf的使用&#xff0c;体验数据在网络中序列化反序列化的形式&#xff0c;并非一个完整的项目。 该通讯录只实现了增加联系人的功能。服务器端接收到请求后会将联系人的信息打印。 二、环境搭建 使用Httplib库&#xff0c;可以快速…

jsp文件引用的css修改后刷新不生效问题

问题 在对 JavaWeb 项目修改的过程中&#xff0c;发现修改了 jsp 文件引入的 css 文件的代码后页面的样式没有更新的问题。 原因 导致这个问题的原因可能是因为浏览器缓存的问题。 解决方法 下面介绍两种解决方法&#xff0c;供大家参考&#xff1a; 1、给 link 标签的 c…

TrustZone之安全虚拟化

在Armv7-A首次引入虚拟化时,它仅在非安全状态中添加。在Armv8.3之前,Armv8也是如此,如下图所示: 如前所述在切换安全状态时,EL3用于托管固件和安全监视器。安全EL0/1托管受信任的执行环境(TEE),由受信任的服务和内核组成。 在安全状态下,没有对多个虚拟机的需…

Java基础——什么是main方法

main方法是Java虚拟机调用的入口&#xff0c;该方法的权限必须是public&#xff0c;Java虚拟机在执行main方法时不必创建对象&#xff0c;所以该方法是static修饰&#xff0c;接收一个String类型的数组参数&#xff0c;数组保存执行Java命令时传递给所运行的类的参数&#xff0…

基于微信小程序和Spring、SpringMVC、MyBatis的汽车租赁管理系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于微信小程序和Spring、SpringMVC、My…

Kafka生产问题总结及性能优化实践

1、消息丢失情况 消息发送端&#xff1a; &#xff08;1&#xff09;acks0&#xff1a; 表示producer不需要等待任何broker确认收到消息的回复&#xff0c;就可以继续发送下一条消息。性能最高&#xff0c;但是最容易丢消息。大数据统计报表场景&#xff0c;对性能要求很高&am…

JavaCV之rtmp推流(FLV和M3U8)

JavaCV与FFmpeg FFmpeg是一款开源的多媒体处理工具集&#xff0c;它包含了一系列用于处理音频、视频、字幕等多媒体数据的库和工具。 JavaCV集成了FFmpeg库&#xff0c;使得Java开发者可以使用FFmpeg的功能&#xff0c;比如视频解码、编码、格式转换等。 除了FFmpeg&#xff0…

LeetCode力扣每日一题(Java):35、搜索插入位置

一、题目 二、解题思路 1、我的思路&#xff08;又称&#xff1a;论API的重要性&#xff09; 读完题目之后&#xff0c;我心想这题目怎么看着这么眼熟&#xff1f;好像我之前学过的一个API呀&#xff01; 于是我回去翻了翻我之前写的博客&#xff1a;小白备战蓝桥杯&#xf…

通用的AGI 安全风险

传统安全风险 平台基础设施安全风险 模型与数据层安全风险 应用层安全风险 平台基础设施安全风险 &#xff08;1&#xff09;物理攻击&#xff1a;机房管控不到位 &#xff08;2&#xff09;网络攻击 &#xff08;3&#xff09;计算环境&#xff1a;自身安全漏洞&#xf…

编辑器Sublime text 常用快捷命令 列模式 替换空行

平替notepad 下载可取官网 www.sublimetext.com 据说可以无限试用&#xff0c;没有功能限制 1、快速删除空行 ctrl h选择正则表达式 .*Find输入&#xff1a; ^(\t)*$\nReplace输入&#xff1a;点击Replace All 2、快速选择指定字符 用鼠标选中alt f3修改 3、列编辑模式 ct…

如何理解HTML下的网页结构?

HTML&#xff08;Hypertext Markup Language&#xff09;是一种标记语言&#xff0c;用于描述网页的结构和内容。以下是对网页结构的理解以及网络爬虫在处理不同类型网页时可能遇到的情况&#xff1a; 1. HTML基本结构 HTML文档的基本结构通常包括以下几个部分&#xff1a; …

宇视科技视频监控 main-cgi 文件信息泄露漏洞复现

0x01 产品简介 宇视(Uniview)高清网络摄像机是一种高性能的网络摄像机,它可以通过网络进行视频传输和监控。该摄像机采用先进的视频技术,具有高清晰度、低照度、宽动态等特点,能够提供高质量的视频图像。 0x02 漏洞概述 宇视(Uniview)高清网络摄像机存在信息泄露漏洞…