网站排名配色,分工做网站如何,深圳人才招聘网,微信开发者工具概述写一个三角形类#xff0c;拥有私有成员 a,b,c 三条边 写好构造函数初始化 abc 以及 abc 的set get 接口 再写一个等腰三角形类#xff0c;继承自三角形类 1#xff1a;写好构造函数#xff0c;初始化三条边 2#xff1a;要求无论如何#xff0c;等腰三角形类对象#x…写一个三角形类拥有私有成员 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 memoryusing namespace std; class ABC
{
private:int a;int b;int c;
public:ABC(int a0,int b0,int c0):a(a),b(b),c(c){}void seta(int l){al;}void setb(int l){bl;}void setc(int l){cl;}int geta(){return a;}int getb(){return b;}int getc(){return c;}
};class ABB:public ABC
{
public:ABB(int a0,int bb0):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 aaa0):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 memoryusing namespace std; class AABB{
private:int a;int b;
public:AABB(int a0,int b0):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.husing 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.husing 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;
}