当前位置: 首页 > 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
请按任意键继续. . .
http://www.lryc.cn/news/274825.html

相关文章:

  • redis安装与配置
  • kotlin first/last/indexOf/elementAt
  • 计算机网络——网络中要解决的问题
  • 初识STL
  • 程序员副业之无人直播助眠
  • imazing破解版百度云2.17.3(附激活许可证下载)
  • VS+QT五子棋游戏开发
  • SpringBoot中动态注册接口
  • CSS 实现两个圆圈重叠部分颜色不同
  • 【数据库系统概念】第7-14章集合
  • Kibana
  • C#使用 OpenHardwareMonitor获取CPU或显卡温度、使用率、时钟频率相关方式
  • K8S--- volumesvolumeMount
  • AntV-G6 -- 将G6图表应用到项目中
  • 第二百五十回
  • 如何把硬盘(分区)一分为二?重装系统的小伙伴不可不看
  • 【AI视野·今日NLP 自然语言处理论文速览 第六十六期】Tue, 31 Oct 2023
  • 解决Canvas画图清晰度问题
  • zookeeper经典应用场景之分布式锁
  • 红队专题-Web安全/渗透测试-文件上传/下载/包含
  • 安装阿里云CLI之配置阿里云凭证信息
  • 阿里云和腾讯云2核2G3M服务器上传速度多少?
  • Python中的cls语法
  • 【Java】java -jar 读取jar包之外的yml
  • 遥感影像-语义分割数据集:山体滑坡数据集详细介绍及训练样本处理流程
  • ubuntu 22.04 安装r-base时缺少r-recommended
  • HarmonOS 通用组件(Button)
  • 代码随想录算法训练DAY22|二叉树8
  • 如何解决跨域问题
  • Typora 编辑器 讲解 包括使用方式 快捷键 附带下载地址 (免费破解)