作业day6

1:编写一个长方形类, 私有成员 a,b 构造函数初始化 set get 接口 编写一个正方形类,继承自长方形类 构造函数初始化 无论如何,正方形类对象总是正方形的

#include <iostream>
#include <cstring>
#include <cstdlib>
#include <unistd.h>
#include <sstream>
#include <vector>
#include <memory>using namespace std;class Data{
private:int a;int b;public:AB(int a=0,int b=0):a(a),b(b){}void setA(int l){a=l;}void setB(int l){b=l;}int getA(){return a;}int getB(){return b;}
};class AA:public AB{public:AA(int ab):AB(a,b){}void setA(int a){AB::setA(a);AB::setB(a);}void setB(int b){AB::setA(a);AB::setB(a);}};int main(int argc,const char** argv){AA aa;aa.setA(4);aa.setB(5);
}

写一个三角形类,拥有私有成员 a,b,c 三条边 写好构造函数初始化 abc 以及 abc 的set get 接口 再写一个等腰三角形类,继承自三角形类 1:写好构造函数,初始化三条边 2:要求无论如何,等腰三角形类对象,总是等腰的 再写一个等边三角形类,继承自等腰三角形类 1:写好构造函数,初始化三条边 2:要求无论如何,等腰三角形类对象,总是等边

#include <iostream>
#include <cstring>
#include <cstdlib>
#include <unistd.h>
#include <sstream>
#include <vector>
#include <memory>using namespace std;class ABC {
private:int a;int b;int c;
public:ABC(int a = 0, int b = 0, int c = 0) : a(a), b(b), c(c) {}void setA(int l) { a = l; }void setB(int l) { b = l; }void setC(int l) { c = l; }int getA() { return a; }int getB() { return b; }int getC() { return c; }
};class AAC : public ABC {
public:AAC(int ab = 0, int c = 0) : ABC(ab, ab, c) {}void setA(int a) {ABC::setA(a);ABC::setB(a);}void setB(int b) {ABC::setA(a);ABC::setB(a);}
};class AAA : public AAC {
public:AAC(int abc = 0) : AAC(abc,abc,abc ) {}void setA(int a) {ABC::setA(a);ABC::setB(a);}void setB(int b) {ABC::setA(a);ABC::setB(a);}void setC(int c) {ABC::setA(a);ABC::setB(a);}
};
int main(int argc, const char** argv) {AAC aac; // 等腰三角形对象aac.setA(4);aac.setB(5);aac.setC(6);AAA aaa;aaa.setA(2);}

封装消息队列 class Msg{ key_t key int id; int channel } 实现以下功能 Msg m("文件名") m[1].send("数据"),将数据发送到1号频道中 string str = m[1].recv(int size) 从1号频道中读取消息,并且返回 把 send 改成 operator<< ,recv 改成 operator>> 实现效果: m[1] << "helloworld" 将 "helloworld" 写入消息队列的1号频道中 m[1] >> str 读取消息队列中1频道中的消息,存入 str 中 编写程序测试

#include <iostream>
#include <cstring>
#include <cstdlib>
#include <unistd.h>
#include <sstream>
#include <vector>
#include <memory>using namespace std;class Msg{
private:key_t key;int id;int channel;struct msgbuf{long channel;char text[512];};
public:Msg(const string& filename = ""){key = ftok(filename.data(),1);id = msgget(key,IPC_CREAT | 0666);}~Msg(){msgctl(id,IPC_RMID,0);}//void send(const string& str){Msg& operator<<(const string& str) {msgbuf buf = {0};	strcpy(buf.text,str.data());buf.channel = channel;msgsnd(id,&buf,str.length,0);}//string recv(int size=512){Msg& operator>>(string& str) {msgbuf buf = {0};msgrecv(id,&buf,size,channel,0);string str = buf.text;return str;}friend Msg operator[](const Msg& l,int channel);
};// m[1].send(str);
Msg& operator[](const Msg& l,int channel){l.channel = channel;return l;
}int main(int argc,const char** argv){}

封装信号灯集 class Sem{ key_t key int id; int index } 实现以下功能 Sem s(参数x,参数y):创建信号灯集,信号灯集中存在 x 个信号量,并且将所有信号量初始化为 y s[1].init(10):手动初始化信号灯集中的第1个信号量,初始化成 10 s[1] + 1 让信号灯集中的第1个信号量的值 +1 s[1].operator+(1) s[1] - 1 让信号灯集中的第1个信号量的值 -1 追加 operator ++ 功能,即解锁一次 以及 operator-- 功能, 即上锁一次 编写程序测试

#include <iostream>
#include <cstring>
#include <cstdlib>
#include <unistd.h>
#include <sstream>
#include <vector>
#include <memory>using namespace std;class Sem{
private:key_t key;int id;int index;
public:Sem(const string& filename = "",int n,int val){key = ftok(filename.data());id = semget(key,n,IPC_CREAT | 0666);for(int i=0;i<n;i++){semctl(id,i,SETVAL,val);}}~Sem(){semctl(id,0,IPC_RMID);}friend Sem& operator+(const Sem& l,int val);friend Sem& operator-(const Sem& l,int val);friend Sem operator[](const Sem& l,int index);friend Sem& operator++(Sem& l);friend Sem& operator--(Sem& l);
};// Sem s
// s + 1解锁
// s - 1 上锁
// s + 1 + 1 + 1 - 2 - 3
// int(4) + 3
Sem& operator+(const Sem& l,int val){sembuf buf = {0};buf.sem_num = l.index;buf.sem_op = abs(val);buf.sem_flg = SEM_UNDO;semop(id,&buf,1);return l;
}/*Sem s;s[0] - 1  s.index = 0确定好了
*/Sem& operator-(const Sem& l,int val){sembuf buf = {0};buf.sem_num = l.index;buf.sem_op = -abs(val);buf.sem_flg = SEM_UNDO;semop(id,&buf,1); return l;                    
}
Sem& operator++(Sem& l) {sembuf buf = {0};buf.sem_num = l.index;buf.sem_op = 1;buf.sem_flg = SEM_UNDO;semop(l.id, &buf, 1);return l;
}Sem& operator--(Sem& l) {sembuf buf = {0};buf.sem_num = l.index;buf.sem_op = -1;buf.sem_flg = SEM_UNDO;semop(l.id, &buf, 1);return l;
}Sem& operator[](const Sem& l,int index){l.index = index;return l;
}int main(int argc,const char** argv){Sem s("test", 1, 1);++s[0];  cout << "++: " << s[0] << endl;--s[0]; cout << "--: " << s[0] << endl;
}

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

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

相关文章

7.建立文件版题库|编写model文件|使用boost split字符串切分(C++)

建立文件版题库 题目的编号题目的标题题目的难度题目的描述&#xff0c;题面时间要求(内部处理)空间要求(内部处理) 两批文件构成第一个&#xff1a;questions.list : 题目列表&#xff08;不需要题目的内容&#xff09;第二个&#xff1a;题目的描述&#xff0c;题目的预设置…

LabVIEW中CFURL.llb 工具库说明

CFURL.llb 是 LabVIEW 2019 安装目录下 C:\Program Files (x86)\National Instruments\LabVIEW 2019\vi.lib\Platform\ 路径下的工具库&#xff0c;主要用于处理 LabVIEW 与 URL 相关的操作&#xff0c;涵盖 URL 解析、HTTP 请求发送、数据传输等功能模块&#xff0c;帮助开发者…

网络运维学习笔记 017 HCIA-Datacom综合实验01

文章目录 综合实验1实验需求总部特性 分支8分支9 配置一、 基本配置&#xff08;IP二层VLAN链路聚合&#xff09;ACC_SWSW-S1SW-S2SW-Ser1SW-CoreSW8SW9DHCPISPGW 二、 单臂路由GW 三、 vlanifSW8SW9 四、 OSPFSW8SW9GW 五、 DHCPDHCPGW 六、 NAT缺省路由GW 七、 HTTPGW 综合实…

6.✨Python学习价值与优势分析

✨Python 是一种值得深入学习的编程语言&#xff0c;其设计哲学、广泛的应用场景以及强大的社区支持使其成为当今最受欢迎的编程语言之一。以下从多个角度分析为什么 Python 值得深入学习&#xff1a; 1.&#x1f98b; 简洁易学的语法 Python 以简洁、可读性强著称&#xff0c…

Android Audio其他——数字音频接口(附)

数字音频接口 DAI,即 Digital Audio Interfaces,顾名思义,DAI 表示在板级或板间传输数字音频信号的方式。相比于模拟接口,数字音频接口抗干扰能力更强,硬件设计简单,DAI 在音频电路设计中得到越来越广泛的应用。 一、音频链路 1、模拟音频信号 可以看到在传统的…

Spring AI + Ollama 实现调用DeepSeek-R1模型API

一、前言 随着人工智能技术的飞速发展&#xff0c;大语言模型&#xff08;LLM&#xff09;在各个领域的应用越来越广泛。DeepSeek 作为一款备受瞩目的国产大语言模型&#xff0c;凭借其强大的自然语言处理能力和丰富的知识储备&#xff0c;迅速成为业界关注的焦点。无论是文本生…

2.3 变量

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 变量是用来存放某个值的数据&#xff0c;它可以表示一个数字、一个字符串、一个结构、一个类等。变量包含名称、类型和值。在代码中…

LLM大语言模型私有化部署-使用Dify的工作流编排打造专属AI诗词数据分析师

背景 前面的文章通过 Ollama 私有化部署了 Qwen2.5 (7B) 模型&#xff0c;然后使用 Docker Compose 一键部署了 Dify 社区版平台。 LLM大语言模型私有化部署-使用Dify与Qwen2.5打造专属知识库&#xff1a;在 Dify 平台上&#xff0c;通过普通编排的方式&#xff0c;创建了基于…

ESP32S3:参考官方提供的led_strip组件使用 SPI + DMA 方式驱动WS2812 RGB灯的实现思路 (实现各个平台移植使用该方式)

目录 引言使用SPI + DMA 方式实现思路分析1. 查看WS2812的datasheet手册2. 根据官方的led_strip组件的方式,自己手把手实现一遍3.完整的程序(实现霓虹灯效果)引言 参考官方提供的led_strip组件使用 SPI + DMA 方式驱动WS2812 RGB灯的实现思路,只有明白实现的思路,方能将其…

工程师 - VSCode的AI编码插件介绍: MarsCode

豆包 MarsCode MarsCode AI: Coding Assistant Code and Innovate Faster with AI 豆包 MarsCode - 编程助手 安装完成并使能后&#xff0c;会在下方状态栏上显示MarsCode AI。 安装完并重启VSCode后&#xff0c;要使用这个插件&#xff0c;需要注册一下账号。然后授权VSCod…

DPVS-5: 后端服务监控原理与测试

后端监控原理 被动监测 DPVS自带了被动监控&#xff0c;通过监控后端服务对外部请求的响应情况&#xff0c;判断服务器是否可用。 DPVS的被动监测&#xff0c;并不能获取后端服务器的详细情况&#xff0c;仅仅通过丢包/拒绝情况来发觉后端服务是否可用。 TCP session state…

Tag标签的使用

一个非常适合运用在vue项目中的组件&#xff1a;Tag标签。 目录 一、准备工作 1、安装element-plus库 2、配置element-plus库 二、Tag标签入门 1、打开element官网&#xff0c;搜索tag标签 2、体验Tag标签的基础用法 三、Tag标签进阶训练1 1、定义一个数组&#xff0c;…

算法-图-数据结构(邻接矩阵)-BFS广度优先遍历

邻接矩阵广度优先遍历&#xff08;BFS&#xff09;是一种用于遍历或搜索图的算法&#xff0c;以下是具体介绍&#xff1a; 1. 基本概念 图是一种非线性的数据结构&#xff0c;由顶点和边组成&#xff0c;可分为无向图、有向图、加权图、无权图等。邻接矩阵是表示图的一种数…

Ryu:轻量开源,开启 SDN 新程

1. Ryu 控制器概述 定位&#xff1a;轻量级、开源的SDN控制器&#xff0c;专为开发者和研究人员设计&#xff0c;基于Python实现。开发者&#xff1a;由日本NTT实验室主导开发&#xff0c;遵循Apache 2.0开源协议。核心理念&#xff1a;简化SDN应用开发&#xff0c;提供友好的…

内容中台架构下智能推荐系统的算法优化与分发策略

内容概要 在数字化内容生态中&#xff0c;智能推荐系统作为内容中台的核心引擎&#xff0c;承担着用户需求与内容资源精准匹配的关键任务。其算法架构的优化路径围绕动态特征建模与多模态数据融合展开&#xff0c;通过深度强化学习技术实现用户行为特征的实时捕捉与动态更新&a…

【odoo18-文件管理】在uniapp上访问odoo系统上的图片

在uniapp上访问odoo系统上的图片 1、以url的形式访问 a&#xff1a;以odoo本身的域名&#xff0c;比如http://127.0.0.1:8069/web/image/product.template/3/image_128?unique1740380422000&#xff0c;这种方式需要解决跨域的问题。 b&#xff1a;以文件服务器的形式&…

DeepSeek掘金——基于DeepSeek-R1构建文档问答机器人

DeepSeek掘金——基于DeepSeek-R1构建文档问答机器人 在这个项目中,我们将结合本地 AI 的隐私与 Deepseek R1 的智能,创建一个完全本地化、推理驱动的问答机器人。 在人工智能 (AI) 日益融入我们日常生活的时代,一个问题仍然处于最前沿:隐私。尽管基于云的 AI 系统功能强大…

计算机毕业设计Hadoop+Spark+DeepSeek-R1大模型民宿推荐系统 hive民宿可视化 民宿爬虫 大数据毕业设计(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

将maya模型物体材质转化为面材质

将maya模型物体材质转化为面材质&#xff0c;以在导出abc时继承材质信息&#xff1b; 运行一下python代码&#xff1a; import maya.cmds as cmds objListcmds.ls(slTrue) for obj in objList:shapeNodeNamecmds.listRelatives(obj, shapesTrue)sgNodesListcmds.listConnecti…

数据库面试题(基础常考!!!)

在数据库领域&#xff0c;无论是日常开发还是面试场景&#xff0c;都有一些高频且重要的问题需要我们深入理解和掌握。本文将对这些常见面试题进行详细阐述&#xff0c;帮助大家更好地应对面试和实际工作中的挑战。 面试题一&#xff1a;三范式详解 什么是三范式 三范式是关…