当前位置: 首页 > news >正文

第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 这里安装的是下面的版本&#xff1a; 3. 安装 …...

kotlin first/last/indexOf/elementAt

kotlin 中 first 是取集合元素中第一个元素 last 是取集合元素中最后一个元素 indexOf 根据元素寻找下标&#xff0c;默认是第一个 elementAt 根据下标找元素 下面写一个demo 说明下他们几个的使用 val list listOf("A", "D", "A", "…...

计算机网络——网络中要解决的问题

1. 从网络管理的角度看 1.1 配置管理 追踪所有部署的硬件和软件资源&#xff0c;包括设备配置和软件版本。 1.2 故障管理​​​​​ 监控设备的运行状态&#xff0c;以确保所有组件都正常工作&#xff0c;以及快速响应和修复任何故障。 1.3 计费管理 监控资源消耗并进行计费…...

初识STL

目录 ​&#x1f4a1;STL &#x1f4a1;STL六大组件 &#x1f4a1;三大组件介绍 &#x1f4a1;容器 &#x1f4a1;算法 &#x1f4a1;迭代器 &#x1f4a1;示例 &#x1f4a1;STL C STL&#xff08;标准模板库&#xff09;是一套功能强大的 C 模板类&#xff0c;提供了…...

程序员副业之无人直播助眠

介绍和概览 大家好&#xff0c;我是小黑&#xff0c;本文给大家介绍一个比较轻松简单的副业&#xff0c;无人直播助眠副业。 这个项目的核心就是通过直播一些助眠素材来赚钱。比如你可以放一些舒缓的雨声之类的&#xff0c;吸引观众进来。然后&#xff0c;咱们可以挂个小程序…...

imazing破解版百度云2.17.3(附激活许可证下载)

iMazing是一款强大的 iOS 设备管理软件&#xff0c;不管是 iPhone、iPad 或 iPod Touch 设备&#xff0c;只要将 iOS 设备连接到计算机&#xff0c;就可以处理不同类型的数据。 iPhone 和 iPad 备份 借助 iMazing 的独有 iOS 备份技术&#xff08;无线、隐私和自动&#xff09…...

VS+QT五子棋游戏开发

1、首先安装好VS软件和QT库&#xff0c;将其配置好&#xff0c;具体不在此展开说明。 2、文件结构如下图&#xff1a; 3、绘制棋盘代码&#xff0c;如下&#xff1a; void Qwzq::paintEvent(QPaintEvent* event) {QPainter painter(this);painter.setRenderHint(QPainter::An…...

SpringBoot中动态注册接口

1. 说明 接口注册&#xff0c;使用RequestMappingHandlerMapping来实现mybatis中动态执行sql使用github上的SqlMapper工具类实现 2. 核心代码片段 以下代码为spring动态注册接口代码示例 Autowired private RequestMappingHandlerMapping requestMappingHandlerMapping;publ…...

CSS 实现两个圆圈重叠部分颜色不同

这是期望实现的效果&#xff0c;由图可知&#xff0c;圆圈底图透明度是0.4&#xff0c;左侧要求重叠部分透明度是0.7&#xff0c;所以不能通过简单的透明度叠加来实现最右侧的效果。 这就需要另外新建一个图层来叠加在两个圆圈重叠上方。 直接看代码 .circle_hight {width: 1…...

【数据库系统概念】第7-14章集合

文章目录 第七章 数据库设计和E-R模型&#xff08;重点&#xff01;&#xff01;&#xff01;&#xff09;~~7.1 设计过程概览&#xff08;了解&#xff09;~~7.1.1 设计阶段7.1.2 设计选择 7.2 实体-联系模型&#xff08;重点掌握&#xff09;7.2.1 实体集7.2.2 联系集联系集的…...

Kibana

Kibana是一个针对Elastic Search的开源分析及可视化的平台&#xff0c;使用kibana可以查询、查看并与存储在ES索引的数据进行交互操作&#xff0c;可以理解为一个客户端的工具&#xff0c;比如mysql和navicat。 使用kibana能执行高级的数据分析&#xff0c;并能以图表、表格和地…...

C#使用 OpenHardwareMonitor获取CPU或显卡温度、使用率、时钟频率相关方式

C# 去获取电脑相关的基础信息&#xff0c;还是需要借助 外部的库&#xff0c;我这边尝试了自己去实现它 网上有一些信息&#xff0c;但不太完整&#xff0c;都比较零碎&#xff0c;这边尽量将代码完整的去展示出来 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"相关的内容&#xff0c;本章回中将介绍另外一个三方包&#xff1a;bluetooth_enable_fork.闲话休提&#xff0c;让我们一起Talk Flu…...

如何把硬盘(分区)一分为二?重装系统的小伙伴不可不看

注意事项&#xff1a;本教程操作不当会导致数据丢失 请谨慎操作 请谨慎操作 请谨慎操作 前言 相信各位小伙伴都会切土豆吧&#xff0c;本教程就是教大家如何切土豆切得好的教程。 啊哈哈哈&#xff0c;开玩笑的。 比如你有一个D盘是200GB&#xff0c;想要把它变成两个100G…...

【AI视野·今日NLP 自然语言处理论文速览 第六十六期】Tue, 31 Oct 2023

AI视野今日CS.NLP 自然语言处理论文速览 Tue, 31 Oct 2023 (showing first 100 of 141 entries) Totally 100 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers The Eval4NLP 2023 Shared Task on Prompting Large Language Models a…...

解决Canvas画图清晰度问题

最近在开发Web端远程桌面的时候遇到的一个问题&#xff0c;解决记录一下&#xff0c;分享给各位有需要用到的朋友。 先吹下水&#xff1a;远程桌面的连接我们是通过Websocket连接后&#xff0c;后端不断返回远程端的界面二进制数据流&#xff0c;我接收到之后转为图像&#xf…...

zookeeper经典应用场景之分布式锁

1. 什么是分布式锁 在单体的应用开发场景中涉及并发同步的时候&#xff0c;大家往往采用Synchronized&#xff08;同步&#xff09;或者其他同一个JVM内Lock机制来解决多线程间的同步问题。在分布式集群工作的开发场景中&#xff0c;就需要一种更加高级的锁机制来处理跨机器的进…...

DynamicColor跨平台开发指南:iOS、macOS、watchOS的统一颜色解决方案

DynamicColor跨平台开发指南&#xff1a;iOS、macOS、watchOS的统一颜色解决方案 【免费下载链接】DynamicColor Yet another extension to manipulate colors easily in Swift and SwiftUI 项目地址: https://gitcode.com/gh_mirrors/dy/DynamicColor DynamicColor是一…...

noice.nvim终极性能优化指南:让你的Neovim编辑器运行如飞

noice.nvim终极性能优化指南&#xff1a;让你的Neovim编辑器运行如飞 【免费下载链接】noice.nvim &#x1f4a5; Highly experimental plugin that completely replaces the UI for messages, cmdline and the popupmenu. 项目地址: https://gitcode.com/gh_mirrors/no/noic…...

RouterOS网桥VLAN实战:从零构建安全隔离的二层虚拟网络

1. VLAN基础与RouterOS网桥概述 刚接触网络管理的朋友可能经常听到"VLAN"这个词&#xff0c;但总觉得它神秘莫测。其实VLAN就像给一栋办公楼划分不同部门&#xff1a;财务部、研发部、市场部各自有独立的办公区域&#xff0c;既保证了隐私安全&#xff0c;又避免了相…...

从零搭建无人船:两年实战后,我总结的ArduPilot+Pixhawk避坑全流程

从零搭建无人船&#xff1a;两年实战后&#xff0c;我总结的ArduPilotPixhawk避坑全流程 第一次把无人船放进水里时&#xff0c;GPS信号突然丢失&#xff0c;船体在河中央失控打转——这个惊心动魄的瞬间让我意识到&#xff0c;开源飞控的实战应用远不是下载代码、连接硬件那么…...

百川2-13B模型实战:Python爬虫数据的智能分析与摘要生成

百川2-13B模型实战&#xff1a;Python爬虫数据的智能分析与摘要生成 每天&#xff0c;互联网上都会产生海量的文本信息&#xff0c;新闻、论坛帖子、社交媒体动态……对于市场分析师、舆情监控人员或者内容运营者来说&#xff0c;如何从这些信息海洋中快速提炼出有价值的内容&…...

[模电]从PN结到实用电路:二极管的深度解析与设计指南

1. PN结&#xff1a;二极管的物理基础 想象一下把一块P型半导体和N型半导体紧密贴合在一起&#xff0c;就像把两块不同颜色的橡皮泥揉捏在一起。P型半导体里充满了带正电的"空穴"&#xff08;可以理解为缺少电子的位置&#xff09;&#xff0c;而N型半导体则富含自由…...

teler IDS v3前瞻:eBPF技术与teler-waf集成带来的革命性变革

teler IDS v3前瞻&#xff1a;eBPF技术与teler-waf集成带来的革命性变革 【免费下载链接】teler Real-time HTTP Intrusion Detection 项目地址: https://gitcode.com/gh_mirrors/te/teler teler IDS作为一款实时HTTP入侵检测系统&#xff0c;在网络安全领域已经建立了坚…...

野火挑战者开发板实战:用STM32CubeMX从零配置GPIO、UART和ADC(附完整代码)

野火挑战者开发板实战&#xff1a;从零构建环境监测系统 刚拿到野火挑战者开发板时&#xff0c;面对密密麻麻的引脚和复杂的配置选项&#xff0c;很多初学者会感到无从下手。本文将带你用STM32CubeMX图形化工具&#xff0c;快速配置GPIO、UART和ADC这三个最常用的外设&#xff…...

5分钟搞定!Clipy剪贴板管理神器让Mac效率翻倍

5分钟搞定&#xff01;Clipy剪贴板管理神器让Mac效率翻倍 【免费下载链接】Clipy Clipboard extension app for macOS. 项目地址: https://gitcode.com/gh_mirrors/cl/Clipy 还在为macOS只能记住最后一次复制内容而烦恼吗&#xff1f;Clipy是一款专为Mac用户设计的剪贴板…...

嵌入式开发代码版本比较工具与技巧

1. 嵌入式开发中的代码版本差异查看方法在嵌入式开发过程中&#xff0c;代码版本管理是每个工程师必须掌握的核心技能。随着项目迭代和功能更新&#xff0c;我们经常需要比较不同版本代码之间的差异&#xff0c;无论是为了代码审查、问题排查还是版本合并。作为一名嵌入式开发者…...