C++入门及简单例子_4

1. 类和对象:

#include <iostream>  // 包含输入输出流库的头文件class Rectangle {  // 定义名为Rectangle的类
private:  // 私有成员变量部分double length;  // 长度double width;   // 宽度public:  // 公有成员函数部分Rectangle(double len, double wid) {  // 构造函数,用于初始化对象的属性length = len;width = wid;}double getArea() {  // 计算矩形面积的成员函数return length * width;}
};int main() {  // 主函数Rectangle rectangle(5.0, 3.0);  // 创建Rectangle类的对象rectangle,并调用构造函数初始化其属性double area = rectangle.getArea();  // 调用对象的成员函数来计算矩形的面积std::cout << "Area: " << area << std::endl;  // 输出矩形的面积return 0;  // 返回0,表示程序成功执行
}

这个示例演示了如何创建一个简单的类(Rectangle)和对象(rectangle)。类具有私有成员变量(length和width)和公有成员函数(getArea),并通过使用构造函数来初始化对象的属性。

2. 继承和多态:

#include <iostream>  // 包含输入输出流库的头文件class Shape {  // 定义名为Shape的类
public:  // 公有成员函数部分virtual void draw() {  // 定义虚函数draw,用于绘制形状std::cout << "Drawing a shape." << std::endl;  // 输出绘制形状的消息}
};class Circle : public Shape {  // 定义名为Circle的类,继承自Shape类
public:  // 公有成员函数部分void draw() override {  // 重写基类的虚函数draw,用于绘制圆形std::cout << "Drawing a circle." << std::endl;  // 输出绘制圆形的消息}
};class Rectangle : public Shape {  // 定义名为Rectangle的类,继承自Shape类
public:  // 公有成员函数部分void draw() override {  // 重写基类的虚函数draw,用于绘制矩形std::cout << "Drawing a rectangle." << std::endl;  // 输出绘制矩形的消息}
};int main() {  // 主函数Shape* shape1 = new Circle();  // 创建Shape类的指针shape1,并使用Circle类初始化它Shape* shape2 = new Rectangle();  // 创建Shape类的指针shape2,并使用Rectangle类初始化它shape1->draw();  // 调用shape1指针指向的对象的draw函数,实际上会调用Circle类的draw函数shape2->draw();  // 调用shape2指针指向的对象的draw函数,实际上会调用Rectangle类的draw函数delete shape1;  // 释放shape1指针指向的对象的内存delete shape2;  // 释放shape2指针指向的对象的内存return 0;  // 返回0,表示程序成功执行
}

此示例展示了继承和多态的概念。基类Shape定义了虚函数draw,派生类Circle和Rectangle分别重写了该函数。在主函数中,通过指向基类的指针,可以实现多态调用,根据对象的实际类型调用相应的draw函数。

3. 文件操作:

#include <iostream>  // 包含输入输出流库的头文件
#include <fstream>   // 包含文件流库的头文件int main() {  // 主函数std::ofstream file("example.txt");  // 创建一个名为"example.txt"的输出文件流对象fileif (file.is_open()) {  // 检查文件流是否成功打开file << "Hello, file!";  // 向文件中写入文本内容file.close();  // 关闭文件流std::cout << "File created and written successfully." << std::endl;  // 输出文件创建和写入成功的消息} else {std::cout << "Failed to create file." << std::endl;  // 输出文件创建失败的消息}return 0;  // 返回0,表示程序成功执行
}

这个示例展示了如何使用文件流(ofstream)创建一个文件并写入内容。首先,我们尝试打开文件,如果成功打开,就将文本写入文件中。最后,我们关闭文件并输出相应的消息。

这些示例程序涵盖了一些进阶的C++概念,如类和对象、继承和多态,以及文件操作。通过学习和实践这些示例,进一步提高C++编程技能,并能够处理更复杂的问题。

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

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

相关文章

【鸽鸽送书第一期】 | 实现可观测性平台的技术要点是什么?文末参与送书哦!

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《粉丝福利》 《C语言进阶篇》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 &#x1f4cb; 前言实现可观测性平台的技术要点是什么&#xff1f;1.兼容全域信号量2.所谓全域信号量有哪些&#x…

Java 对象和类

目录 Java 对象和类 Java中的对象 Java中的类 构造方法 创建对象 访问实例变量和方法 源文件声明规则 Java包 Import语句 一个简单的例子 Java 对象和类 Java作为一种面向对象语言。支持以下基本概念&#xff1a; 多态继承封装抽象类对象实例方法消息解析 本节我们重…

基于AI视觉的表面缺陷检测设备优势显著,加速制造业数智化转型

作为生产制造过程中不可缺少的一步&#xff0c;表面缺陷检测广泛应用于工业领域&#xff0c;包括3C电子、芯片半导体、食品医药、木材等行业。但随着智能化进程加快&#xff0c;制造工厂生产线的质量检测压力加剧&#xff0c;传统人工表面缺陷检测已经无法满足当前社会较高的检…

YOLOv8『小目标』检测指南

前言 目前博主课题组在进行物体部件的异常检测项目&#xff0c;项目中需要先使用 YOLOv8 进行目标检测&#xff0c;然后进行图像切割&#xff0c;最后采用 WinCLIP 模型 进行部件异常检测 但是在实际操作过程中出现问题&#xff0c; YOLOv8 模型目标检测在大目标精确度不错&a…

Mybatis深度解析:从起源到现代应用的全景视角

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

Centos7部署单机版MongoDB

目录 Centos7部署单机版MongoDBMongoDB介绍数据模型索引分布式高可用性查询语言驱动和社区用途缺点 下载并解压安装包创建相关文件夹和文件编辑mongod.conf文件启动mongodb创建管理员用户终止MongoDB服务配置自启动服务关闭SELinux编辑自启动服务文件mongodb服务命令 Centos7部…

spark6. 如何设置spark 日志

spark yarn日志全解 一.前言二.开启日志聚合是什么样的2.1 开启日志聚合MapReduce history server2.2 如何开启Spark history server 三.不开启日志聚合是什么样的四.正确使用log4j.properties 一.前言 本文只讲解再yarn 模式下的日志配置。 二.开启日志聚合是什么样的 在ya…

Debian

常用命令 apt-get apt list --installed查找特定的软件包&#xff0c;使用grep命令过滤结果 apt list --installed | grep package_name卸载&#xff0c;apt purge [安装包] apt purge package_name报错 缺少公钥 错误信息&#xff1a; GPG error: http://security.ubun…

QT-day1

实现华清远见登陆界面 #include "mywnd.h" #include <iostream> #include <QDebug> #include <QPushButton> #include <QLineEdit> #include <QLabel>MyWnd::MyWnd(QWidget *parent): QWidget(parent) {//设置固定窗口大小长400&…

【计算机毕业设计】基于SpringBoot+Vue的小区物业管理系统的设计与实现

博主主页&#xff1a;一季春秋博主简介&#xff1a;专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发&#xff0c;远程调试部署、代码讲解、文档指导、ppt制作等技术指导。主要内容&#xff1a;毕业设计(Java项目、小程序等)、简历模板、学习资料、面试题…

1262. 可被三整除的最大和

1262. 可被三整除的最大和 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;方法一&#xff1a;贪心 正向思维方法二&#xff1a;贪心 逆向思维 参考代码&#xff1a;方法一&#xff1a;贪心 正向思维方法二&#xff1a;贪心 逆向思维 原题链接&#xff1a;…

python 通过open api 接口 连续问答gpt

1 第一次提问 response openai.ChatCompletion.create(modelmodel_name,messages[{"role": "system", "content": "精通python的专家"}, # 设定机器角色{"role": "user", "content": "我想学习p…

机器人制作开源方案 | 随叫随到的智能垃圾桶

作者&#xff1a;卢智浩 尹宗岱 胡文珺 付文智 陈星 单位&#xff1a;江汉大学 指导老师&#xff1a;侍中楼 李巍 本作品围绕探索者场景和应用主题&#xff0c;基于当今时代“智能家”的快速发展&#xff0c;智慧生活成为未来的一大发展趋势&#xff0c;因此我们设计了此款可…

NPDP是什么证书?含金量高吗?

NPDP是在2016年引进国内的,也才几年时间,所以大多数人对NPDP并不是很了解,换个称呼&#xff0c;也就是产品经理&#xff0c;很多人就了解了。 产品经理这一职业现在是非常火热&#xff0c;有着丰厚的薪资、较为舒适的办公环境、并不高的入职门槛,而且实际上各类学校中并没有产…

【刷题】蓝桥杯

蓝桥杯2023年第十四届省赛真题-平方差 - C语言网 (dotcpp.com) 初步想法&#xff0c;x y2 − z2&#xff08;yz)(y-z) 即xa*b&#xff0c;ayz&#xff0c;by-z 2yab 即ab是2的倍数就好了。 即x存在两个因数之和为偶数就能满足条件。 但时间是&#xff08;r-l&#xff09;*x&am…

【深度学习实验】线性模型(二):使用NumPy实现线性模型:梯度下降法

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入库 1. 初始化参数 2. 线性模型 linear_model 3. 损失函数loss_function 4. 梯度计算函数compute_gradients 5. 梯度下降函数gradient_descent 6. 调用函数 一、实验介绍 使用Nu…

只需4步使用Redis缓存优化Node.js应用

介绍 通过API获取数据时&#xff0c;会向服务器发出网络请求&#xff0c;收到响应数据。但是&#xff0c;此过程可能非常耗时&#xff0c;并且可能会导致程序响应时间变慢。 我们使用缓存来解决这个问题&#xff0c;客户端程序首先向API发送请求&#xff0c;将返回的数据存储…

文档丢失怎么找回?学会这3个方法就足够!

场景1&#xff1a;“不是吧&#xff01;我辛辛苦苦写的文档好像忘记保存就退出了&#xff01;谁能救救我&#xff01;帮我找回丢失的文档&#xff1f;” 场景2&#xff1a;“电脑里的文档太多了&#xff0c;每次在清理时都容易误删。有什么方法可以找回我丢失的文档吗&#xff…

成集云 | 用友T+集成聚水潭ERP(用友T+主管库存)| 解决方案

源系统成集云目标系统 方案介绍 用友T是一款由用友畅捷通推出的新型互联网企业管理系统&#xff0c;它主要满足成长型小微企业对其灵活业务流程的管控需求&#xff0c;并重点解决往来业务管理、订单跟踪、资金、库存等管理难题。 聚水潭是一款以SaaS ERP为核心&#xff0c;集…

HandleErrorAttribute 是 ASP.NET MVC 中的一个特性(attribute),用于全局处理控制器中的异常

它允许开发者在发生异常时&#xff0c;自定义异常的处理方式。 在 ASP.NET MVC 中&#xff0c;当控制器中的某个方法抛出异常时&#xff0c;HandleErrorAttribute 可以捕获这个异常&#xff0c;并执行相应的处理逻辑。这可以确保应用程序在发生异常时&#xff0c;不会突然中断…