【C++】——类与对象(二)

news2025/1/15 23:33:44

 🎃个人专栏:

🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客

🐳Java基础:Java基础_IT闫的博客-CSDN博客

🐋c语言:c语言_IT闫的博客-CSDN博客

🐟MySQL:数据结构_IT闫的博客-CSDN博客

🐠数据结构:​​​​​​数据结构_IT闫的博客-CSDN博客

💎C++:C++_IT闫的博客-CSDN博客

🥽C51单片机:C51单片机(STC89C516)_IT闫的博客-CSDN博客

💻基于HTML5的网页设计及应用:基于HTML5的网页设计及应用_IT闫的博客-CSDN博客​​​​​​

🥏python:python_IT闫的博客-CSDN博客

欢迎收看,希望对大家有用!

目录

🎯第一题:

🎯 第二题:

🎯 第三题:

🎯 答案:

💻第一题:

💻第二题:

💻第三题:

🎯第一题:

现有一学生类定义, 分别实现类的构造函数、拷贝构造函数(深拷贝)、析构函数及显示函数;分别用构造函数及拷贝构造函数创建对象,并输出对象信息。效果如图:

🎯 第二题:

声明一个Student类,在该类中包括数据成员name(姓名),score(分数)、两个静态数据成员total_score(总分)和count(学生人数);一个静态成员函数average()用于求全班成绩的平均值。在main函数中,输入某班(3个)同学的姓名成绩,输出全班学生的成绩之和及平均分。效果如图:

🎯 第三题:

设计一个坐标系点类Point,友元函数dis计算给定两个坐标点的距离;在主程序中创建类Point的两个点对象p1和p2;计算两个点之间距离并输出。效果如图:

🎯 答案:

💻第一题:

#include <iostream>

#include <cstring>

using namespace std;

class Student {

 public:

 Student(int id,string name,char* addr);

 Student(const Student& other);

 ~Student();

 void show();

 private:

 int _id;

 string _name;

 char *_addr;

};

Student::Student(int id,string name,char* addr) {

 cout<<"调用构造函数"<<endl;

 _id=id;

_name=name;

int len =strlen(addr)+1;

_addr=new char[len];

memset(_addr,0,len);

strcpy(_addr,addr);

}

Student::Student(const Student& another) {

 cout<<"调用拷贝构造函数"<<endl;

_id=another._id;

_name=another._name;

int len=strlen(another._addr)+1;

_addr=new char[len];

strcpy(_addr,another._addr);

}

void Student::show() {

 cout<<_id<<" "<<_name<<" "<<_addr<<endl;

}

Student::~Student() {

 cout<<"调用析构函数"<<endl;

 if(_addr!=NULL)

 delete []_addr;

}

int main() {

 char *p = "beijing";

 Student stuA(123456,"zhangsan",p);

 cout<<"stuA:";

 stuA.show();

 Student stuB(stuA); //使用sheepA初始化新对象sheepB

 cout<<"stuB:";

 stuB.show();

 return 0;

}

💻第二题:

#include <iostream>

using namespace std;

class Student {

 public:

 Student(string _name,int _score);

 static float average();

 static float total_score;

 static int count;

 private:

 string name;

 float score;

};

Student::Student(string _name,int _score){

name=_name;

score=_score;

total_score+=score;

count++;

}

float Student::total_score=0.0;

int Student::count=0;

float Student::average(){

return (total_score/count);

}

int main() {

 string name;

 float score;

 cout<<"input name,socre:";

 cin>>name>>score;

 Student stu1(name,score);

 cout<<"input name,socre:";

 cin>>name>>score;

 Student stu2(name,score);

 cout<<"input name,socre:";

 cin>>name>>score;

 Student stu3(name,score);

 cout<<"total_socre:"<<Student::total_score<<",average:"<<Student::average()<<endl;

 return 0;

}

💻第三题:

#include <iostream>

#include <cmath>

using namespace std;

class Point {

 friend float dis(Point &p1,Point &p2);

 public:

 Point(float x,float y);

 ~Point();

 private:

 float _x;

 float _y;

};

Point::Point(float x=0,float y=0):_x(x),_y(y) {

 cout<<"初始化坐标点"<<endl;

}

Point::~Point() {}

float dis(Point &p1,Point &p2) {

float d=sqrt((p1._x-p2._x)*(p1._x-p2._x)+(p1._y-p2._y)*(p1._y-p2._y)); 

return d;

}

int main() {

 Point p1(5,5);

 Point p2(10,10);

 float distance=dis(p1,p2);

 cout<<"两点间距离是:"<<distance<<endl;

 return 0;

}

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

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

相关文章

微信号绑定50个开发者小程序以后超额如何删除不用的

我们在开发微信小程序的时候&#xff0c;当前开发者工具登录的必须是该小程序的开发者才能进行小程序的开发&#xff0c;添加开发者的步骤是&#xff1a; 添加开发者 1、进入微信开放平台&#xff0c;然后扫码进入管理平台 2、找到下图所示位置 3:、输入要添加的微信账号&am…

python调用chrome实现网页自动操作

一. 内容简介 python调用chrome实现网页自动操作。 二. 软件环境 2.1vsCode 2.2Anaconda version: conda 22.9.0 2.3代码 链接&#xff1a; 三.主要流程 3.1 下载驱动和插件 调用谷歌浏览器&#xff0c;需要下载浏览器驱动&#xff08;https://registry.npmmirror.co…

fastadmin 表单页面,根据一个字段的值显示不同字段

表单中有计费方式&#xff0c;选中不同的计费方式显示不同的字段如下图 根据选择不同的计费方式&#xff1a;重量或夹板。展示不同相关字段&#xff1a;每件重量/每夹板件数量 add.html <div class"form-group"><label class"control-label col-xs-12…

redisson中的分布式锁二

公平锁&#xff08;Fair Lock&#xff09; 基于Redis的Redisson分布式可重入公平锁也是实现了java.util.concurrent.locks.Lock接口的一种RLock对象。同时还提供了异步&#xff08;Async&#xff09;、反射式&#xff08;Reactive&#xff09;和RxJava2标准的接口。它保证了当…

C#开发的OpenRA游戏之世界存在的属性CombatDebugOverlay(3)

C#开发的OpenRA游戏之世界存在的属性CombatDebugOverlay(3) 这次来分析CombatDebugOverlay属性,这个属性只有在调试游戏的时候才会使用。当你设置这个属性的时候,就可以看到如下图的结果: 可以看到物品的周边都有一个圆圈,以及有一些十字的点位标志。 那些十字表示的点…

LCD英文字模库(16x8)模拟测试程序

字模 字模&#xff0c;就是把文字符号转换为LCD能识别的像素点阵信息。 电子发烧友可能都熟悉字模的用途。就是调用者通过向LCD模块发送字模数据&#xff0c;LCD根据字模数据在LCD面板上相应的像素描绘出图形或文字。 现在&#xff0c;大部分的LCD都内置了字模库&#xff0c…

【脑源成像】术前癫痫的电源成像 评价:现状与未来展望

Electric source imaging for presurgical epilepsy evaluation: current status and future prospects 术前癫痫的电源成像 评价:现状与未来展望论文下载&#xff1a;算法程序下载&#xff1a;摘要1 项目介绍1.1. 选择要综述的文章2. 电源成像的基本原理4. ESI的实践方面4.1脑…

EPLAN中的电位,编号和报表

一、电位-eplan路由的理论基础 电位&#xff0c;信号和网络是eplan中的隐藏三君子。官网帮助中对电位和信号的解释如下&#xff1a; 在 EPLAN 中区分电位和信号。通过电位使连接属性的默认值和电位信息进入到项目中。 通过电位定义点或电位连接点定义一个电位或信号。此处录入…

Autosar模块介绍:Memory_2(NVM)

上一篇 | 返回主目录 | [下一篇] Autosar模块介绍&#xff1a;Memory_2(NVM 1 基本术语解释2 NVRAM Block组成关系2.1 基础Block类型2.1.1 NV Block2.1.2 RAM Block2.1.3 ROM Block2.2.4 Administrative Block 2.2 NVRAM Block类型 1 基本术语解释 编号缩写原文解释1NVNon Vol…

万字详解Java的三大特性:封装 | 继承 | 多态

前言&#xff1a;面向对象程序设计的三大特征就是&#xff1a;封装&#xff0c;继承&#xff0c;多态。在前文介绍了类和对象后&#xff0c;我们就可以继而学习什么是封装&#xff0c;怎么用类的子类来实现继承和多态 目录 一.面向对象的特性 1.封装性 2.继承性 3.多态性…

一种优雅的调用第三方接口的思路及实现

之前的项目调用第三方接口时&#xff0c;往往用HttpUtils类似的静态方法调用。比较丑&#xff0c;不通用。如下&#xff0c;这是截取项目中某人调用的一段代码&#xff0c;非常不雅&#xff1a; 经改进后&#xff0c;采用了动态代理技术来实现&#xff0c;效果如下&#xff1a…

麒麟KYLINOS中制作Ghost镜像文件

原文链接&#xff1a;麒麟KYLINOS中制作Ghost镜像文件 hello&#xff0c;大家好啊&#xff0c;今天给大家带来一篇在麒麟KYLINOS桌面操作系统2203中制作Ghost镜像文件的文章&#xff0c;首先需要将系统进行备份&#xff0c;然后在系统自带的备份还原工具中点击一键Ghost制作镜像…

【LeetCode】每日一题 2023_11_10 咒语和药水的成功对数(练习二分)

文章目录 刷题前唠嗑题目&#xff1a;咒语和药水的成功对数题目描述代码与解题思路偷看大佬题解 结语 刷题前唠嗑 LeetCode? 启动&#xff01;&#xff01;&#xff01; 可恶&#xff0c;今天的题目怎么也这么长 题目&#xff1a;咒语和药水的成功对数 题目链接&#xff1a…

微服务-我对Spring Clound的理解

官网&#xff1a;https://spring.io/projects/spring-cloud 官方说法&#xff1a;Spring Cloud 为开发人员提供了快速构建分布式系统中一些常见模式的工具&#xff08;例如配置管理、服务发现、熔断器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话…

paddleOcr训练一个属于自己的模型

自己配置开发环境的时候踩了不少坑&#xff0c;现在记录下来&#xff0c;以后需要了可以直接找到现成的代码&#xff0c;也希望能够帮到有需要的小伙伴 目录 &#xff08;一&#xff09;、运行环境搭建1、Anaconda部分Anaconda安装Anaconda创建虚拟环境指令Anaconda Prompt工作…

k8s二进制(ETCD的部署安装)

角色ip组件k8s-master192.168.11.169kube-apiserver,kube-controller-manager,kube-scheduler,etcdk8s-node1192.168.11.164kubelet,kube-proxy,docker,etcdk8s-node2192.168.11.166kubelet,kube-proxy,docker,etcd 1、为etcd签发证书 1、证书的下载(任意机器上执行都可以) …

双十一剁手节,MobPush助力各大电商平台提前锁定潜力用户

一年一度的购物狂欢节双十一还未到来&#xff0c;各大电商平台却早已摩拳擦掌跃跃欲试。据统计&#xff0c;10月31日晚8点&#xff0c;京东百亿补贴日开场不到4分钟&#xff0c;京东百亿补贴频道成交额破亿&#xff0c;抖音商城整体GMV较去年双11同期提升200%&#xff0c;支付用…

SPRINGBOOT整合CXF发布WEB SERVICE和客户端调用(用户和密码验证)

主要分为客户端和服务端 服务端 pom配置 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.3</version><relativePath/> <!-- lookup parent fro…

loading动效实现

在站上闲逛发现一个非常有意思的loading效果&#xff0c;跟着大佬仿写了一下Vue版本的。 https://blog.csdn.net/tianjian4592/article/details/44538605 直接放源码 <script setup> import {ref, defineProps, watch} from "vue";const props defineProps({…

三菱FX3U系列-定位指令

目录 一、简介 二、指令形式 1、相对定位[DRVI、DDRVI] 2、绝对定位[DRVA、DDRVA] 三、总结 一、简介 定位指令用于控制伺服电机或步进电机的位置移动。可以通过改变脉冲频率和脉冲数量来控制电机的移动速度和移动距离&#xff0c;同时还可以指定移动的方向。 二、指令形…