用C++代码定义一个Cat类,其拥有静态数据成员numOfCats,记录已经创建的Cat对象的个体数目,静态数据成员numOfCatsGo,记录已经销毁的Cat对象的个体数目;静态成员函数getNumOfCats(bool IsConstruted),当IsConstruted为true时读取numOfCats,当IsConstruted为false时读取numOfCatsGo;数据私有成员weight,记录Cat对象的体重。 定义一个Boat类,其拥有数据私有成员weight,记录Boat对象的体重。 根据上述请完成如下内容: (1)请设计一个Cat类,体会静态数据成员和静态成员函数的用法。 (2)定义一个Cat类和Boat类的友元函数getTotalWeight(),计算一个Cat对象和Boat对象的体重和并返回。 输入格式 第一行输入正整数N,表示即将创建Cat类对象的个数, 第二行输入浮点数W0,表示一个Cat对象的体重 第三行输入浮点是W1,表示一个Boat对象的体重。 输出格式 首先先输出2N行数据,分别表示当前Cat对象创建时已经创建的对象个数,已经在内存中存在的对象个数;当前Cat对象销毁时,Cat对象在内存中存在的对象个数。(对应N个对象) 再输出1行表示Cat对象创建时已经创建的对象个数,已经在内存中存在的对象个数。(新创建一个对象,用于后续体重和计算) 然后输出一个Cat对象与一个Boat对象的体重和。 最后输出Cat对象销毁时,Cat对象在内存中存在的对象个数。 输入样例 复制 3 60.1 80.1 输出样例 复制 Cat Object is constructing, the constructed Number is 1, and the living Number is 1 Cat Object is deconstructing, and the living Number is 0 Cat Object is constructing, the constructed Number is 2, and the living Number is 1 Cat Object is deconstructing, and the living Number is 0 Cat Object is constructing, the constructed Number is 3, and the living Number is 1 Cat Object is deconstructing, and the living Number is 0 Cat Object is constructing, the constructed Number is 4, and the living Number is 1 140.2 Cat Object is deconstructing, and the living Number is 0

时间: 2024-02-23 16:01:11 浏览: 23
```cpp #include <iostream> using namespace std; class Boat; class Cat { private: static int numOfCats; static int numOfCatsGo; float weight; public: Cat(float w); ~Cat(); static int getNumOfCats(bool IsConstruted); friend float getTotalWeight(Cat& c, Boat& b); }; class Boat { private: float weight; public: Boat(float w) : weight(w) {} friend float getTotalWeight(Cat& c, Boat& b); }; int Cat::numOfCats = 0; int Cat::numOfCatsGo = 0; Cat::Cat(float w) : weight(w) { numOfCats++; cout << "Cat Object is constructing, the constructed Number is " << numOfCats << ", and the living Number is " << numOfCats - numOfCatsGo << endl; } Cat::~Cat() { numOfCatsGo++; cout << "Cat Object is deconstructing, and the living Number is " << numOfCats - numOfCatsGo << endl; } int Cat::getNumOfCats(bool IsConstruted) { if (IsConstruted) { return numOfCats; } else { return numOfCatsGo; } } float getTotalWeight(Cat& c, Boat& b) { return c.weight + b.weight; } int main() { int N; float w0, w1; cin >> N >> w0 >> w1; for (int i = 0; i < N; i++) { Cat c(w0); } cout << "Cat Object is constructing, the constructed Number is " << Cat::getNumOfCats(true) << ", and the living Number is " << Cat::getNumOfCats(true) - Cat::getNumOfCats(false) << endl; Boat b(w1); cout << getTotalWeight(Cat(w0), b) << endl; cout << "Cat Object is deconstructing, and the living Number is " << Cat::getNumOfCats(true) - Cat::getNumOfCats(false) << endl; return 0; } ```

相关推荐

6. 请编写一个简单的 JSP 页面,显示英文字母表。 7.请简单叙述 include 指令标记和 include 动作标记的不同. 8. 编写三个 JSP 页面:main.jsp、circle jsp、ladder.jsp, 将三个 JSP 页面保存在 同一web 服务目录中。main.jsp 使用 include 动作标记加載 circle.jsp 和ladder.jsp页面。circle.jsp 页面可以计算并显示圆的面积。ladder.jsp页面可以计算并显示梯形的面积。当 circle.jsp 和ladder.jsp 被加载时获取main.jsp 页面include 动作标记的param 子标记提供的圆的半径以及梯形的上底、下底和高的值。 1.假设JSP 使用的表单中有如下的 GUI(复选框 <input type="checkbox" name="item" value="bird"> , sinput type='checkbox" name="item" value="apple">苹果 sinput type="'checkbox" name="item" value="cat">猫 sinput type="checkbox" name="item" value="moon">月亮 该表单所请求的 JSP 可以使用内罝对象 request 获取该表单提交的数据.那么.下列 哪些是 request 获取该表单提交的值的正确语句? A. String a-request.getParameter("item"); B. String b=request.getParameter("checkbox"); C. String c(]=request.getParameter Values("item"); D. String d[]=request. getParameter Values("checkbox"); 2. 如果表单提交的信息中有汉字,接收该信息的页面应做怎样的处理?3.编写两个jsp 页面 inpuString.jsp 和 computer.jsp,用户可以使用 inputString.isp 提供的表单输入一个字符串,并提交给 computer.isp 页面,该页 面通过内置对象获取 inputString.jsp 页面提交的字符串,计算并显示该宇符串的长度。 4.response 调用 sendRedirect(URL: url方法的作用是什么? 5.一个用户在不同web 服务目录中的session 对象相同吗? 6.一个用户在同一Web服务目录的不同子目录的session 对象相同吗?

最新推荐

recommend-type

C++类的静态成员初始化详细讲解

通常静态数据成员在类声明中声明,在包含类方法的文件中初始化.初始化时使用作用域操作符来指出静态成员所属的类.但如果静态成员是整型或是枚举型const,则可以在类声明中初始化
recommend-type

C++获取类的成员函数的函数指针详解及实例代码

主要介绍了C++获取类的成员函数的函数指针详解及实例代码的相关资料,需要的朋友可以参考下
recommend-type

C++类成员和数据成员初始化总结

C++类成员和数据成员初始化总结 C++为类中提供类成员的初始化列表 类对象的构造顺序是这样的: 1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员 2.进入构造函数后在构造函数中执行一般计算 1.类...
recommend-type

C++语言数据结构 串的基本操作实例代码

主要介绍了C语言数据结构 串的基本操作实例代码的相关资料,需要的朋友可以参考下
recommend-type

定义一个人员类Person,数据成员有姓名,能够设置姓名的值及显示姓名

定义一个人员类Person,数据成员有姓名,能够设置姓名的值及显示姓名 从人员类派生出老师类和学生类 学生类数据成员有学号、班级等,能够显示相应信息 老师类数据成员有系别、所教科目,能够显示相应信息 定义一个...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

用 Python 画一个可以动的爱心

好的,我可以帮助您使用Python来绘制一个动态的爱心。您可以使用turtle库来实现。以下是实现代码: ```python import turtle import math # 设置画布和画笔 canvas = turtle.Screen() canvas.bgcolor("black") pencil = turtle.Turtle() pencil.speed(0) pencil.color("red", "pink") pencil.pensize(3) # 定义爱心函数 def draw_love(heart_size, x_offset=0, y_offset=0):
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。