77范文网 - 专业文章范例文档资料分享平台

C++程序设计教程--面向对象分册(郑秋生)答案(3)

来源:网络收集 时间:2020-05-23 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

CString c5=c2;

cout<<\ cout<

cout<<\以下是对串的比较******************\

int temp=c2.compare(c3);

cout<<\以下比较c2与c3\ if(temp>0) cout<<\ else if(temp<0) cout<<\ else cout<<\cout<

cout<<\以下比较c2与任意字符串Goodboy!\

if(c2.compare(\ cout<<\ else if(c2.compare(\ cout<<\ else cout<<\ }

第二章 继承和派生

一、选择题

1.D 2.B 3. D 一、阅读程序题

四、编程题 4.1

#include #include #define PAI 3.14

class Circle {

public:

Circle(){r=0;}

Circle (double d){r=d;}

double area(){return(PAI*r*r);}

void display1(){cout<<\桌子的面积:\private: double r; };

class Table {

public:

Table(){heig=0;}

Table (double h) {heig=h;}

void display2(){cout<<\桌子的高度:\private: double heig; };

class Roundtable : public Circle,public Table {

public:

Roundtable(){strcpy(color,\白色\

Roundtable(double a,double b,char* c):Circle(a),Table(b){strcpy(color,c);} void display () { display1(); display2();

cout<<\桌子的颜色:\private:

char color[20]; };

void main() {

Roundtable s(2.0,3.0,\黑色\s.display(); } 4.2

如果Age在基类中被定义为私有的,SetAge(int n)不能直接给Age赋值,如果Age是基类的公有成员变量,则可以直接赋值。 class Animal {

public:

Animal(){};

int Age; };

class Dog:public Animal {

public:

Dog(){};

Void SetAge(int n) {

Age=n; } }; 4.3

#include class Rectangle {

public:

Rectangle (double l,double w){length=l,width=w} double area(){return length*width;} void display1(); private:

double length; double width; };

void Rectangle::display1() {cout<<\长:\ cout<<\宽:\class Cuboid:public Rectangle {

public:

Cuboid (double L,double w,double h):Rectangle(L,w){high=h,volume=L*w*high }; double vol(){return area()*high;} void show (); private: double high; double volume; };

void Cuboid::show() {

display1();

cout<<\高:\cout<<\体积:\}

void main() {

Cuboid cub (10,20,30); cub.show(); } 4.4

#include class Vehicle {

public:

Vehicle():maxspeed(0),weight(0){}

Vehicle(double m,double w):maxspeed(m),weight(w){}; void run ()

{ cout<<\ 可以奔跑\void stop ()

{ cout<<\ 可以停止奔跑\private:

double maxspeed; double weight; };

class Bicycle:virtual public Vehicle {

public:

Bicycle (double m,double w,double h):Vehicle(m,w),height(h){} private:

double height; };

class Motorcar : virtual public Vehicle {

public:

Motorcar (double m,double w,double s):Vehicle(m,w),setnum(s){} private:

double setnum; };

class Motorcycle:public Bicycle,public Motorcar {

public:

Motorcycle(double m,double w,double h,double s):Bicycle(m,w,h),Motorcar(m,w,s), Vehicle(m,w){} };

void main() {

Motorcycle s1(300,10,6,30);

s1.run(); s1.stop(); }

如果不把Vehicle设置为虚基类,会产生二义性问题。

第3章 多态性

3.1 简答题

3.1.1 哪些运算符可以重载?

几乎所有的运算符都可以重载,除了以下的几个运算符: ., ::,?: 3.1.2 运算符重载后,优先级和结合性如何?

用户重新定义运算符,不改变原运算符的的优先级和结合性。同时运算符重载后,也不改变运算符的语法结构,即单目运算符只能重载为单目运算符,双目运算符只能重载为双目运算符。

3.1.3 编译程序如何选用运算符函数? 在每一种编译系统中,运算符实际上都对应一个函数,只是这种运算对用户具有透明性,使用者并不知道函数的存在。运算符重载实际上是运算符函数的重载,所以运算符的重载实际上是函数的重载。

编译程序对运算符重载的选择,遵循着函数重载的选择原则。当遇到不很明显的运算符时,编译程序将去寻找参数相匹配的运算符函数。

3.1.4 重载运算符有哪些限制? (1)不可臆造新的运算符 (2)坚持四个不能改变。

? 不能改变运算符原有的优先级 ? 不能改变运算符原有的结合性 ? 不能改变运算符原有的语法结构 ? 不能改变运算符原有的操作数个数 但允许改变

运算符的返回类型 (3)C++规定,运算符中,参数类型都是内部类型时,不允许重载。 “::、*、->、?:”这五个运算符不能重载。 3.1.5 运算符重载必须遵循哪些原则?

运算符重载可以使程序更加简洁,使表达式更加直观,增强可读性。但是,运算符重载使用不宜过多,否则会带来一定的麻烦。

运算符重载必须遵循以下原则: (1)重载运算符含义必须清楚。 (2)重载运算符不能有二义性。

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库C++程序设计教程--面向对象分册(郑秋生)答案(3)在线全文阅读。

C++程序设计教程--面向对象分册(郑秋生)答案(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/1069205.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: