第3章 【课后习题】(完整版)
【3.18】写出下面程序的运行结果
//3.18写出下面程序的运行结果
#include <iostream>
using namespace std;
class test{public:test();~test() {};private:int i;
};
test::test()
{i=25;for(int ctr=0;ctr<10;ctr++){cout<<"Counting at "<<ctr<<"\n";}
}
test anObject;
int main()
{return 0;
}
运行结果
Counting at 0
Counting at 1
Counting at 2
Counting at 3
Counting at 4
Counting at 5
Counting at 6
Counting at 7
Counting at 8
Counting at 9--------------------------------
Process exited after 0.6007 seconds with return value 0
请按任意键继续. . .
【3.19】写出下面程序的运行结果
//【3.19】写出下面程序的运行结果
#include <iostream>
using namespace std;
class Test{private:int val;public:Test()//无参构造函数{cout<<"default."<<endl;}Test(int n)//一参构造函数{val=n;cout<<"Con."<<endl;}Test(const Test& t)//拷贝构造函数{val=t.val;cout<<"Copy con."<<endl;}
};
int main()
{Test t1(6);//调用一参构造函数Test t2=t1;//调用拷贝构造函数Test t3;//调用无参构造函数t3=t1;//不调用任何函数return 0;
}
运行结果
Con.
Copy con.
default.--------------------------------
Process exited after 0.5733 seconds with return value 0
请按任意键继续. . .
【3.20】指出下列程序中的错误,并说明原因
//【3.20】指出下列程序中的错误,并说明原因
#include <iostream>
using namespace std;class Student{public:void printStu();private:char name[10];int age;float aver;
};
int main()
{Student p1,p2,p3;p1.age=30; //错误!!私有数据成员不能直接被访问return 0;
}
编译提示
[Error] 'int Student::age' is private within this context
【3.21】指出下列程序中的错误,并说明原因
//【3.21】指出下列程序中的错误,并说明原因
#include <iostream>
using namespace std;
class Student{int sno;int age;void printStu();void setSno(int d); //注意!!类中没有访问权限关键字的部分会被默认为 private!!
};void printStu() //错误!!如果它是成员函数。正确语句应该是 void Student::printStu()。
{ cout<<"\nSno is "<<sno<<","; //错误!!如果是一般函数,则要定义出 sno,age 这两个变量cout<<"age is "<<age<<"."<<endl; //编译提示:[Error] 'sno' ,'age'was not declared in this scope
}
void setSno(int s) //错误!!如果它是成员函数。正确语句应该是 void Student::setSno()。
{sno=s; //错误!!如果是一般函数,则要定义 sno 个变量
} //编译提示:[Error] 'sno' was not declared in this scope
void setAge(int A. //错误!!基本语法错误,懂的都懂!
{ age=a; //错误!!setAge此时是一般函数,变量age不属于Student类。变量age应该重新定义//编译提示:[Error] 'age' was not declared in this scope
}int main()
{Student lin;lin.setSno(20021); //错误!!不能访问私有成员 编译提示:[Error] 'void Student::setSno(int)' is private within this contextlin.setAge(20); //错误!!setAge()不是成员函数 编译提示: [Error] 'class Student' has no member named 'setAge'lin.printStu; //错误!!不能访问私有成员//语法错误!!调用这个函数的正确语句是 lin.printStu();
}
【3.22】指出下列程序中的错误,并说明原因
//【3.21】指出下列程序中的错误,并说明原因
#include <iostream>
using namespace std;
class Point{public:int x,y;private:Point(){x=1;y=2;}
};
int main()
{Point cpoint; //此处错误!!只有一条编译提示:cpoint.x=2; //[Error] 'Point::Point()' is private within this contextreturn 0; //意思应该是在创建cpoint这个对象时,有构造函数,则要调用构造函数//而此时的构造函数是private,是私有成员,所以又不能访问,所以应该//没人会把构造函数搞成private吧,那这样就失去了构造函数的意义。
}
改法:将自定义的构造函数去掉即可,用默认的构造函数
或者定义为public
【3.23】下面是一个计算器类的定义,请完成该类成员函数的实现
//【3.23】下面是一个计算器类的定义,请完成该类成员函数的实现
class counter{public:counter(int number);void increment(); //给原值加1void decrement(); //给原值减1int getvalue(); //取得计数器值int print(); //显示计数private:int value;
};
代码实现
//【3.23】下面是一个计算器类的定义,请完成该类成员函数的实现
#include <iostream>
using namespace std;
class counter{public:counter(int number);void increment(); //给原值加1void decrement(); //给原值减1int getvalue(); //取得计数器值int print(); //显示计数private:int value;
};
counter::counter(int number) { value=number; }
void counter::increment() { value++; }
void counter::decrement() { value--; }
int counter::getvalue() { return value; }
int counter::print() { cout<<this->getvalue()<<endl; return 0; }
int main()
{counter c(10);c.increment();c.decrement();c.print();
}
【3.24】根据注释语句的提示,实现类Date的成员函数。
//【3.24】根据注释语句的提示,实现类Date的成员函数。
#include <iostream>
using namespace std;
class Date{public:void printDate();//显示日期void setDay(int d);//设置日的值void setMonth(int m);//设置月的值void setYear(int y);//设置年的值private:int day,month,year;
};
int main()
{Date testDay;testDay.setDay(5);testDay.setMonth(10);testDay.setYear(2003);testDay.printDate();return 0;
}
代码实现
//【3.24】根据注释语句的提示,实现类Date的成员函数。
#include <iostream>
using namespace std;
class Date{public:void printDate();//显示日期void setDay(int d);//设置日的值void setMonth(int m);//设置月的值void setYear(int y);//设置年的值private:int day,month,year;
};void Date::setDay(int d) { day=d; }
void Date::setMonth(int m) { month=m; }
void Date::setYear(int y) { year=y; }
void Date::printDate() { cout<<year<<"年"<<month<<"月"<<day<<"日"<<endl; }int main()
{Date testDay;testDay.setDay(5);testDay.setMonth(10);testDay.setYear(2003);testDay.printDate();return 0;
}
输出样例
2003年10月5日--------------------------------
Process exited after 0.5859 seconds with return value 0
请按任意键继续. . .
【3.25】
题目:建立类 cylinder,类 cylinder 的构造函数被传递了两个 double 值,分别表示圆柱体的半径和高度。用类 cylinder 计算圆柱体的体积,并存储在一个 double 变量中。在类 cylinder 中包含一个成员函数 vol0,用来显示每个 cylinder 对象的体积。
代码实现
#include <iostream>
#define PI 3.14159
using namespace std;
class cylinder{public:cylinder(double,double);void volo();private:double r,h,v;
};
cylinder::cylinder(double r1,double h1)
{r=r1;h=h1;
}
void cylinder::volo()
{v=PI*r*r*h;cout<<v<<endl;
}
int main()
{cylinder cy1(2,3);cy1.volo();return 0;
}
输出样例
37.6991--------------------------------
Process exited after 0.4074 seconds with return value 0
请按任意键继续. . .
【3.26】
题目:构建一个类 Stock,含字符串 stockcode 及整型数据成员 quantity、双精度型数据成员price。构造函数含 3 个参数,当定义 Stock 的类对象时,将对象的第 1个字符串参数赋给数据成员stockcode,第2和第3 个参数分别赋给 quantity 和 price。未设置第2和第3 个参数时,quantity的值为1000、price 的值为 8.98。成员函数 print0没有形参,需使用 this 指针,显示对象数据成员的内容。假设类 Stock 第 1个对象的 3 个参数分别为"600001"、3 000和5.67;第2个对象的第1个数据成员的值是"600001",第 2 和第 3个数据成员的值取默认值。编写程序分别显示这两个对象数据成员的值。
代码实现
#include <iostream>
#include <stdlib.h>
using namespace std;
class Stock{public:Stock(string stockcode1,int quantity1=1000,double price1=8.98){stockcode=stockcode1;quantity=quantity1;price=price1;}void print(){cout<<this->stockcode<<" "<<this->quantity<<" "<<this->price<<endl;}private:string stockcode;int quantity;double price;
};
int main()
{Stock stock1("600001",3000,5.67);Stock stock2("600001");stock1.print();stock2.print();
}
输出样例
600001 3000 5.67
600001 1000 8.98--------------------------------
Process exited after 0.3581 seconds with return value 0
请按任意键继续. . .相关文章:
第3章 【课后习题】(完整版)
【3.18】写出下面程序的运行结果 //3.18写出下面程序的运行结果 #include <iostream> using namespace std; class test{public:test();~test() {};private:int i; }; test::test() {i25;for(int ctr0;ctr<10;ctr){cout<<"Counting at "<<ctr…...
redis安装与配置
目录 1. 切换到 root 用户 2. 搜索安装包 3. 安装 redis 4. 查看 redis 是否正常存在 5. 修改ip 6. 重新启动服务器 7. 连接服务器 1. 切换到 root 用户 通过 su 命令切换到 root 用户。 2. 搜索安装包 apt search redis 这里安装的是下面的版本: 3. 安装 …...
kotlin first/last/indexOf/elementAt
kotlin 中 first 是取集合元素中第一个元素 last 是取集合元素中最后一个元素 indexOf 根据元素寻找下标,默认是第一个 elementAt 根据下标找元素 下面写一个demo 说明下他们几个的使用 val list listOf("A", "D", "A", "…...
计算机网络——网络中要解决的问题
1. 从网络管理的角度看 1.1 配置管理 追踪所有部署的硬件和软件资源,包括设备配置和软件版本。 1.2 故障管理 监控设备的运行状态,以确保所有组件都正常工作,以及快速响应和修复任何故障。 1.3 计费管理 监控资源消耗并进行计费…...
初识STL
目录 💡STL 💡STL六大组件 💡三大组件介绍 💡容器 💡算法 💡迭代器 💡示例 💡STL C STL(标准模板库)是一套功能强大的 C 模板类,提供了…...
程序员副业之无人直播助眠
介绍和概览 大家好,我是小黑,本文给大家介绍一个比较轻松简单的副业,无人直播助眠副业。 这个项目的核心就是通过直播一些助眠素材来赚钱。比如你可以放一些舒缓的雨声之类的,吸引观众进来。然后,咱们可以挂个小程序…...
imazing破解版百度云2.17.3(附激活许可证下载)
iMazing是一款强大的 iOS 设备管理软件,不管是 iPhone、iPad 或 iPod Touch 设备,只要将 iOS 设备连接到计算机,就可以处理不同类型的数据。 iPhone 和 iPad 备份 借助 iMazing 的独有 iOS 备份技术(无线、隐私和自动)…...
VS+QT五子棋游戏开发
1、首先安装好VS软件和QT库,将其配置好,具体不在此展开说明。 2、文件结构如下图: 3、绘制棋盘代码,如下: void Qwzq::paintEvent(QPaintEvent* event) {QPainter painter(this);painter.setRenderHint(QPainter::An…...
SpringBoot中动态注册接口
1. 说明 接口注册,使用RequestMappingHandlerMapping来实现mybatis中动态执行sql使用github上的SqlMapper工具类实现 2. 核心代码片段 以下代码为spring动态注册接口代码示例 Autowired private RequestMappingHandlerMapping requestMappingHandlerMapping;publ…...
CSS 实现两个圆圈重叠部分颜色不同
这是期望实现的效果,由图可知,圆圈底图透明度是0.4,左侧要求重叠部分透明度是0.7,所以不能通过简单的透明度叠加来实现最右侧的效果。 这就需要另外新建一个图层来叠加在两个圆圈重叠上方。 直接看代码 .circle_hight {width: 1…...
【数据库系统概念】第7-14章集合
文章目录 第七章 数据库设计和E-R模型(重点!!!)~~7.1 设计过程概览(了解)~~7.1.1 设计阶段7.1.2 设计选择 7.2 实体-联系模型(重点掌握)7.2.1 实体集7.2.2 联系集联系集的…...
Kibana
Kibana是一个针对Elastic Search的开源分析及可视化的平台,使用kibana可以查询、查看并与存储在ES索引的数据进行交互操作,可以理解为一个客户端的工具,比如mysql和navicat。 使用kibana能执行高级的数据分析,并能以图表、表格和地…...
C#使用 OpenHardwareMonitor获取CPU或显卡温度、使用率、时钟频率相关方式
C# 去获取电脑相关的基础信息,还是需要借助 外部的库,我这边尝试了自己去实现它 网上有一些信息,但不太完整,都比较零碎,这边尽量将代码完整的去展示出来 OpenHardwareMonitor获取CPU的温度和频率需要管理员权限 在没…...
K8S--- volumesvolumeMount
一、Volume 简介 在容器当中的磁盘文件(on-disk file )是短暂的(ephemeral),这会对重要的应用程序或者数据产生一些问题。当容器崩溃或停止时,会出现一个问题,即容器状态不会被保存,因此在容器生命周期内被创建或者修改的文件都将丢失。在容器崩溃期间,kubelet会以干净状…...
AntV-G6 -- 将G6图表应用到项目中
1. 效果图 2. 安装依赖 npm install --save antv/g6 3. 代码 import { useEffect } from alipay/bigfish/react; import G6 from antv/g6;const data {id: root,label: 利息收入,subLabel: 3,283.456,ratio: 3,children: [{id: child-a,label: 平均利息,subLabel: 9%,ratio:…...
第二百五十回
文章目录 1. 概念介绍2. 使用方法2.1 简单用法2.2 自定义用法 3. 示例代码4. 内容总结 我们在上一章回中介绍了"三方包open_settings"相关的内容,本章回中将介绍另外一个三方包:bluetooth_enable_fork.闲话休提,让我们一起Talk Flu…...
如何把硬盘(分区)一分为二?重装系统的小伙伴不可不看
注意事项:本教程操作不当会导致数据丢失 请谨慎操作 请谨慎操作 请谨慎操作 前言 相信各位小伙伴都会切土豆吧,本教程就是教大家如何切土豆切得好的教程。 啊哈哈哈,开玩笑的。 比如你有一个D盘是200GB,想要把它变成两个100G…...
【AI视野·今日NLP 自然语言处理论文速览 第六十六期】Tue, 31 Oct 2023
AI视野今日CS.NLP 自然语言处理论文速览 Tue, 31 Oct 2023 (showing first 100 of 141 entries) Totally 100 papers 👉上期速览✈更多精彩请移步主页 Daily Computation and Language Papers The Eval4NLP 2023 Shared Task on Prompting Large Language Models a…...
解决Canvas画图清晰度问题
最近在开发Web端远程桌面的时候遇到的一个问题,解决记录一下,分享给各位有需要用到的朋友。 先吹下水:远程桌面的连接我们是通过Websocket连接后,后端不断返回远程端的界面二进制数据流,我接收到之后转为图像…...
zookeeper经典应用场景之分布式锁
1. 什么是分布式锁 在单体的应用开发场景中涉及并发同步的时候,大家往往采用Synchronized(同步)或者其他同一个JVM内Lock机制来解决多线程间的同步问题。在分布式集群工作的开发场景中,就需要一种更加高级的锁机制来处理跨机器的进…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...
Vue3中的computer和watch
computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...
