21次C++作业
//第一题目
class A //A为基类
{public:
void f1( );
int i;
protected:
void f2();
int j;
private:
int k;
};
/*f4里面是可以调用的
C的对象不能直接调用f2()的成员函数里
f2()也是类C的protected 函数在C++中派生类的成员函数是可以直接访问基类的保护成员和公有成员。
*/
class B: public A //B为A的公用派生类
{public:
void f3( );
protected:
int m;
private:
int n;
}; class C: public B //C为B的公用派生类
{public:
void f4();
private:
int p;
}; int main()
{A a1; //a1是基类A的对象
B b1; //b1是派生类B的对象
C c1; //c1是派生类C的对象
return ;
}
//(1)b1.i,b1.j可以,b1.k不可以
//(2)可以
//(3)i,j可以,k不可以
//(4)i,j,m,p可以,k,n,p不可以
//(5)可以
//(6)可以
//第二题目
#include <iostream>
using namespace std;
class A
{public:
void f1( );
protected:
void f2();
private:
int i;
}; class B: public A
{public:
void f3( );
int k;
private:
int m;
}; class C: protected B
{public:
void f4();
protected:
int n;
private:
int p;
}; class D: private C
{public:
void f5();
protected:
int q;
private:
int r;
}; int main()
{A a1;
B b1;
C c1;
D d1;
return ;
}
//第三题目
#include <iostream>
using namespace std;
class A
{
public:
A(){a=;b=;}
A(int i){a=i;b=;}
A(int i,int j){a=i;b=j;}
void display(){cout<<"a="<<a<<" b="<<b;}
private:
int a;
int b;
}; class B : public A
{
public:
B(){c=;}
B(int i):A(i){c=;}
B(int i,int j):A(i,j){c=;}
B(int i,int j,int k):A(i,j){c=k;}
void display1()
{display();
cout<<" c="<<c<<endl;
}
private:
int c;
}; int main()
{ B b1;
B b2();
B b3(,);
B b4(,,);
b1.display1();//a=0,b=0,c=0
b2.display1();//a=1,b=0,c=0
b3.display1();//a=1,b=3,c=0
b4.display1();//a=1,b=3,c=5
return ;
}
//第四题目
#include <iostream>
using namespace std;
class A
{
public:
A(){cout<<"constructing A "<<endl;}
~A(){cout<<"destructing A "<<endl;}
}; class B : public A
{
public:
B(){cout<<"constructing B "<<endl;}
~B(){cout<<"destructing B "<<endl;}
}; class C : public B
{
public:
C(){cout<<"constructing C "<<endl;}
~C(){cout<<"destructing C "<<endl;}
};
int main()
{ C c1;
return ;
}
//a(),b(),c(),~c(),~b(),~a()构造从基类开始,析构顺序相反
//第五题目
#include<string>
#include <iostream>
using namespace std;
class Teacher
{public:
Teacher(string nam,int a,char s,string tit,string ad,string t);
void display();
protected:
string name;
int age;
char sex;
string title;
string addr;
string tel;
}; Teacher::Teacher(string nam,int a,char s,string tit,string ad,string t):
name(nam),age(a),sex(s),title(tit),addr(ad),tel(t){ }
void Teacher::display()
{cout<<"name:"<<name<<endl;
cout<<"age"<<age<<endl;
cout<<"sex:"<<sex<<endl;
cout<<"title:"<<title<<endl;
cout<<"address:"<<addr<<endl;
cout<<"tel:"<<tel<<endl;
} class Cadre
{public:
Cadre(string nam,int a,char s,string p,string ad,string t);
void display();
protected:
string name;
int age;
char sex;
string post;
string addr;
string tel;
}; Cadre::Cadre(string nam,int a,char s,string p,string ad,string t):
name(nam),age(a),sex(s),post(p),addr(ad),tel(t){} void Cadre::display()
{cout<<"name:"<<name<<endl;
cout<<"age:"<<age<<endl;
cout<<"sex:"<<sex<<endl;
cout<<"post:"<<post<<endl;
cout<<"address:"<<addr<<endl;
cout<<"tel:"<<tel<<endl;
} class Teacher_Cadre:public Teacher,public Cadre
{public:
Teacher_Cadre(string nam,int a,char s,string tit,string p,string ad,string t,float w);
void show( );
private:
float wage;
}; Teacher_Cadre::Teacher_Cadre(string nam,int a,char s,string t,string p,string ad,string tel,float w):
Teacher(nam,a,s,t,ad,tel),Cadre(nam,a,s,p,ad,tel),wage(w) {}
void Teacher_Cadre::show( )
{Teacher::display();//调用teacher的display函数输出
cout<<"post:"<<Cadre::post<<endl;
cout<<"wages:"<<wage<<endl;
} int main( )
{Teacher_Cadre te_ca("Wang-li",,'f',"prof.","president","135 Beijing Road,Shanghai","(021)61234567",1534.5);
te_ca.show( );
return ;
}
21次C++作业的更多相关文章
- 2-1 本章作业&2-2 开发系统与工具选择
2-1 2-2 推荐使用Android Studio开发Flutter
- Bulk Insert & BCP执行效率对比
我们以BCP导出的CSV数据文件,分别使用Bulk insert与BCP导入数据库,对比两种方法执行效率 备注:导入目标表创建了分区聚集索引 1.BCP导出csv数据文件 数据量:15000000行, ...
- 福大软工1816 · 课程计划预报(K班)
实践课安排 对应教学周序 时间 内容 3 09.22 业界交流讲座 6 10.13 团队选题报告答辩 7 10.20 UML设计 8 10.27 团队项目需求答辩 11 11.17 团队现场编程实战与 ...
- 《深入理解Oracle 12c数据库管理(第二版)》PDF
一:下载获取位置: 二:本书图样: 三:本书目录: 图书目录: 第1章 安装Oracle 1.1 了解OFA 1.1.1 Oracle清单目录 1.1.2 Oracle基础目录 1.1.3 Oracl ...
- FICO年终完全手册
FICO年终完全手册 一:系统增加配置部分 1,FBN1增加凭证号码范围,OBH2维护会计凭证号码到新的会计年度 2,KS13检查成本中心的有效期 3,KA23检查成本要素的有效期 4,KL03检查作 ...
- Flutter从入门到进阶实战携程网App_汇总贴
视频地址:https://coding.imooc.com/class/321.html?mc_marking=60e5294c605a87b2af7257d06f70505e&mc_chan ...
- day27--Java集合10
Java集合10 21.集合家庭作业 21.1Homework01 按要求实现: 封装一个新闻类,包括标题和内容属性,提供get.set方法,重写toString方法,打印对象时只打印标题: 只提供一 ...
- 团队作业8——第二次项目冲刺(Beta阶段)--5.21 second day
团队作业8--第二次项目冲刺(Beta阶段)--5.21 second day Day two: 会议照片 项目进展 今天是beta冲刺的第二天,组长还在准备考试当中,我们继续做前端改进和后端安排,今 ...
- Java学习作业(14.4.21)
前三次作业都是基础语法.真的好水啊.从这次开始记录. 1.编写Java程序,把当前目录下扩展名为txt的文件的扩展名全部更名为back. import java.io.*; import java.l ...
随机推荐
- mepg
MPEG(Moving Picture Experts Group,动态图像专家组)
- 如何设置Linux虚拟机的IP地址
本文会详细的解释如何在Linux虚拟机下设置IP地址 我的虚拟机是CentOS 首先,打开你的虚拟机 1.修改主机名 修改完主机名之后,别忘了用:wq命令保存退出 然后我们来设置虚拟机的IP地址 首先 ...
- Explain 参数详解,重点部分已经全部完成,还有少数几个参数没不理解没标注。
Explain 参数详解,重点部分已经全部完成,还有少数几个参数没不理解没标注.http://naotu.baidu.com/file/cdb631355392e317e1d925dc2e48f592 ...
- express 设置跨域
app.use(function (req, res, next) { res.header('Access-Control-Allow-Origin', 'http://localhost: ...
- bzoj4025 二分图 LCT + 最小生成树
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4025 题解 貌似这道题有一个非常简单的做法是线段树分治+并查集. 可是我是为了练 LCT 来做 ...
- 线段树维护区间前k小
线段树维护区间前k小 $ solution: $ 觉得超级钢琴太麻烦?在这里线段树提供一条龙服务 . 咳咳,开始讲正题!这道题我们有一个和超级钢琴复杂度一样 $ ~O(~\sum x\times lo ...
- lnamp完整版[linux+apache2.4+php5.6.6+mysql5.6]
Lnamp环境安装实录 将采用的开源软件: Apache [WEB动态脚本服务器,做nginx的反向代理 8080端口] Tengine [WEB静态文件服务器 80端口] MySQL PHP .Ap ...
- ZROI 19.07.30 简单图论/kk
1.最短路 NOI2019 D2T1 我被这题送Fe了/lb 只有zz才会写二维线段树,比如我. 实际上你只需要矩形取min就可以. kd-tree可以随便过,最慢的点\(0.1s\). 另外一种简单 ...
- 计算两个GPS坐标的距离
场景:已知两个GPS点的经纬度坐标信息.计算两点的距离. 1. 距离/纬度关系 GPS: 22.514519,113.380301 GPS: 22.511962,113.380301 距离: 284. ...
- Quick BI的宝藏工具——交叉表
对于普通的表格展示数据,相信大家都非常熟悉了,今天给大家介绍的是BI领域的分析利器-交叉表,这个在BI分析场景中使用占比最多的分析利器.通过交叉表对数据的承载和管理,用户可以一目了然地分析出各种场景指 ...