EX_25/2/24

寫一個三角形類,擁有私有成員 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 ABB:public ABC
{
public:ABB(int a=0,int bb=0):ABC(a,bb,bb){}void seta(int a){ABC::seta(a);ABC::setb(a);}void setb(int b){ABC::seta(b);ABC::setb(b);}
};
class AAA:public ABC
{AAA(int aaa=0):ABC(aaa,aaa,aaa){}void seta(int a){ABC::seta(a);ABC::setb(a);ABC::setc(a);}
};
int main(int argc,const char** argv)
{ABB d;d.seta(4);d.setb(5);d.setc(6);AAA e;e.seta(7);return 0;
}

編寫一個長方形類, 私有成員 a,b 構造函數初始化 set get 接口 編寫一個正方形類,繼承自長方形類 構造函數初始化 無論如何,正方形類對象總是正方形的

#include <iostream>
#include <cstring>
#include <cstdlib>
#include <unistd.h>
#include <sstream>
#include <vector>
#include <memory>using namespace std;                 class AABB{
private:int a;int b;
public:AABB(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 AABB{
public:AA() : AABB(0,0){}AA(int a):AABB(a,a){}void setA(int a){AABB::setA(a);AABB::setB(a);}void setB(int b){AABB::setA(b);AABB::setB(b);}
};int main(int argc,const char** argv){AA a1;a1.setA(3);a1.setB(4);}

封裝消息隊列 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>
#include <sys/ipc.h>
#include <sys/msg.h>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) {msgbuf buf = {0};strcpy(buf.text, str.data());buf.channel = channel;msgsnd(id, &buf, strlen(buf.text) + 1, 0);}string recv(int size = 512) {msgbuf buf = {0};msgrcv(id, &buf, size, channel, 0);string str = buf.text;return str;}friend Msg& operator<<(Msg& msg, const string& str);friend Msg& operator>>(Msg& msg, string& str);Msg& operator[](int channel) {this->channel = channel;return *this;}
};Msg& operator<<(Msg& msg, const string& str) {msg.send(str);return msg;
}Msg& operator>>(Msg& msg, string& str) {str = msg.recv();return msg;
}int main(int argc, const char** argv) {return 0;
}

封裝信號燈集 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>
#include <sys/ipc.h>
#include <sys/sem.h>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(), 1);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++(Sem& l);friend Sem& operator--(Sem& l);friend Sem& operator[](Sem& l, int index);
};Sem& operator+(Sem& l, int val) {sembuf buf = {0};buf.sem_num = l.index;buf.sem_op = abs(val);buf.sem_flg = SEM_UNDO;semop(l.id, &buf, 1);return l;
}Sem& operator-(Sem& l, int val) {sembuf buf = {0};buf.sem_num = l.index;buf.sem_op = -abs(val);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--(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) {return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/70836.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70836.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70836.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

nv docker image 下載與使用命令備忘

1&#xff0c;系統需求 Requirements for GPU Simulation GPU Architectures Volta, Turing, Ampere, Ada, Hopper NVIDIA GPU with Compute Capability 7.0 CUDA 11.x (Driver 470.57.02), 12.x (Driver 525.60.13) Supported Systems CPU architectures x86_64, ARM…

學習記錄:初次學習使用transformers進行大模型微調

初次使用transformers進行大模型微調 環境&#xff1a; 電腦配置&#xff1a; 筆記本電腦&#xff1a;I5&#xff08;6核12線程&#xff09; 16G RTX3070&#xff08;8G顯存&#xff09; 需要自行解決科學上網 Python環境&#xff1a; python版本:3.8.8 大模型&#xff1a…

【Java學習】Object類與接口

面向對象系列五 一、引用 1.自調傳自與this類型 2.類變量引用 3.重寫時的發生 二、Object類 1.toString 2.equals 3.hashCode 4.clone 三、排序規則接口 1.Comparable 2.Comparator 一、引用 1.自調傳自與this類型 似復刻變量調用里面的非靜態方法時&#xff0c;都…

OpenEuler學習筆記(三十五):搭建代碼托管服務器

以下是主流的代碼托管軟件分類及推薦&#xff0c;涵蓋自托管和云端方案&#xff0c;您可根據團隊規模、功能需求及資源情況選擇&#xff1a; 一、自托管代碼托管平臺&#xff08;可私有部署&#xff09; 1. GitLab 簡介: 功能全面的 DevOps 平臺&#xff0c;支持代碼托管、C…

Vscode無法加載文件,因為在此系統上禁止運行腳本

1.在 vscode 終端執行 get-ExecutionPolicy 如果返回是Restricted&#xff0c;說明是禁止狀態。 2.在 vscode 終端執行set-ExecutionPolicy RemoteSigned 爆紅說明沒有設置成功 3.在 vscode 終端執行Set-ExecutionPolicy -Scope CurrentUser RemoteSigned 然后成功后你再在終…

Transformer 架構 理解

大家讀完覺得有幫助記得關注和點贊&#xff01;&#xff01;&#xff01; Transformer 架構&#xff1a;encoder/decoder 內部細節。 的介紹&#xff0c;說明 Transformer 架構相比當時主流的 RNN/CNN 架構的創新之處&#xff1a; 在 transformer 之前&#xff0c;最先進的架構…

事務的4個特性和4個隔離級別

事務的4個特性和4個隔離級別 1. 什么是事務2. 事務的ACID特性2.1 原子性2.2 一致性2.3 持久性2.4 隔離性 3. 事務的創建4. 事務并發時出現的問題4.1 DIRTY READ 臟讀4.2 NON - REPEATABLR READ 不可重復讀4.3 PHANTOM READ 幻讀 5. 事務的隔離級別5.1 READ UNCOMMITTED 讀未提交…

LeetCode熱題100- 字符串解碼【JavaScript講解】

古語有云&#xff1a;“事以密成&#xff0c;語以泄敗”&#xff01; 關于字符串解碼&#xff1a; 題目&#xff1a;題解&#xff1a;js代碼&#xff1a;代碼中遇到的方法&#xff1a;repeat方法&#xff1a;為什么這里不用this.strstack.push(result)&#xff1f; 題目&#x…

水利工程安全包括哪幾個方面

水利工程安全培訓的內容主要包括以下幾個方面&#xff1a; 基礎知識和技能培訓 &#xff1a; 法律法規 &#xff1a;學習水利工程相關的安全生產法律法規&#xff0c;了解安全生產標準及規范。 事故案例 &#xff1a;通過分析事故案例&#xff0c;了解事故原因和教訓&#x…

淺談新能源汽車充電樁建設問題分析及解決方案

摘要&#xff1a; 在全球倡導低碳減排的大背景下&#xff0c;新能源成為熱門行業在全球范圍內得以開展。汽車尾氣排放會在一定程度上加重溫室效應&#xff0c;并且化石能源的日漸緊缺也迫切對新能源汽車發展提出新要求。現階段的新能源汽車以電力汽車為主&#xff0c;與燃油汽…

05-1基于vs2022的c語言筆記——運算符

目錄 前言 5.運算符和表達式 5-1-1 加減乘除運算符 1.把變量進行加減乘除運算 2.把常量進行加減乘除運算 3.對于比較大的數&#xff08;往數軸正方向或者負方向&#xff09;&#xff0c;要注意占位符的選取 4.浮點數的加減乘除 5-1-2取余/取模運算符 1.基本規則 2.c語…

ubuntu:換源安裝docker-ce和docker-compose

更新apt源 apt換源&#xff1a;ubuntu&#xff1a;更新阿里云apt源-CSDN博客 安裝docker-ce 1、更新軟件源 sudo apt update2、安裝基本軟件 sudo apt-get install apt-transport-https ca-certificates curl software-properties-common lrzsz -y3、指定使用阿里云鏡像 su…

0—QT ui界面一覽

2025.2.26&#xff0c;感謝gpt4 1.控件盒子 1. Layouts&#xff08;布局&#xff09; 布局控件用于組織界面上的控件&#xff0c;確保它們的位置和排列方式合理。 Vertical Layout&#xff08;垂直布局&#xff09; &#xff1a;將控件按垂直方向排列。 建議&#xff1a;適…

Apache Doris 索引的全面剖析與使用指南

搞大數據開發的都知道&#xff0c;想要在海量數據里快速查數據&#xff0c;就像在星圖里找一顆特定的星星&#xff0c;賊費勁。不過別慌&#xff0c;數據庫索引就是咱們的 “定位神器”&#xff0c;能讓查詢效率直接起飛&#xff01;就拿 Apache Doris 這個超火的分析型數據庫來…

docker file中ADD命令的介紹

在 Docker 的世界里&#xff0c;Dockerfile 是一個用于定義鏡像內容和行為的腳本文件。其中&#xff0c;ADD 指令是 Dockerfile 中一個非常重要的命令&#xff0c;用于將文件或目錄從主機文件系統復制到容器的文件系統中。本文將詳細介紹 ADD 指令的作用、使用方式以及一些最佳…

從零到一:如何用阿里云百煉和火山引擎搭建專屬 AI 助手(DeepSeek)?

本文首發&#xff1a;從零到一&#xff1a;如何用阿里云百煉和火山引擎搭建專屬 AI 助手&#xff08;DeepSeek&#xff09;&#xff1f; 阿里云百煉和火山引擎都推出了免費的 DeepSeek 模型體驗額度&#xff0c;今天我和大家一起搭建一個本地的專屬 AI 助手。  阿里云百煉為 …

cpp中的繼承

一、繼承概念 在cpp中&#xff0c;封裝、繼承、多態是面向對象的三大特性。這里的繼承就是允許已經存在的類&#xff08;也就是基類&#xff09;的基礎上創建新類&#xff08;派生類或者子類&#xff09;&#xff0c;從而實現代碼的復用。 如上圖所示&#xff0c;Person是基類&…

【QT】QLinearGradient 線性漸變類簡單使用教程

目錄 0.簡介 1&#xff09;qtDesigner中 2&#xff09;實際執行 1.功能詳述 3.舉一反三的樣式 0.簡介 QLinearGradient 是 Qt 框架中的一個類&#xff0c;用于定義線性漸變效果&#xff08;通過樣式表設置&#xff09;。它可以用來填充形狀、背景或其他圖形元素&#xff0…

前端項目配置 Nginx 全攻略

在前端開發中&#xff0c;項目開發完成后&#xff0c;如何高效、穩定地將其部署到生產環境是至關重要的一步。Nginx 作為一款輕量級、高性能的 Web 服務器和反向代理服務器&#xff0c;憑借其出色的性能和豐富的功能&#xff0c;成為了前端項目部署的首選方案。本文將詳細介紹在…

網絡安全學習-常見web漏洞的滲xxx透以及防護方法

滲XX透測試 弱口令漏洞 漏洞描述 目標網站管理入口&#xff08;或數據庫等組件的外部連接&#xff09;使用了容易被猜測的簡單字符口令、或者是默認系統賬號口令。 滲XX透測試 如果不存在驗證碼&#xff0c;則直接使用相對應的弱口令字典使用burpsuite 進行爆破如果存在驗證…