第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机制来解决多线程间的同步问题。在分布式集群工作的开发场景中,就需要一种更加高级的锁机制来处理跨机器的进…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...
代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...
