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

C++面向对象程序设计第六章课后习题答案(第2版—谭浩强)

来源:用户分享 时间:2025/7/14 20:58:07 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

.

第六章课后习题答案(第二版谭浩强)

1:

//xt6-1/cpp

#include //如用VC++应改为∶#include using namespace std; //如用VC++应取消此行 #include \#include \#include \#include \int main()

{Cylinder cy1(3.5,6.4,5.2,10);

cout<<\<

cout<<\ Point &pRef=cy1;

cout<<\ Circle &cRef=cy1;

cout<<\ return 0; }

3:解法一

#include using namespace std; class Point

{public:

Point(float a,float b):x(a),y(b){}

~Point(){cout<<\ private: float x; float y; };

class Circle:public Point {public:

Circle(float a,float b,float r):Point(a,b),radius(r){}

~Circle(){cout<<\ private:

float radius; .

.

};

int main()

{Point *p=new Circle(2.5,1.8,4.5); delete p; return 0; }

3:解法二

#include using namespace std; class Point {public:

Point(float a,float b):x(a),y(b){}

~Point(){cout<<\ private: float x; float y; };

class Circle:public Point {public:

Circle(int a,int b,int r):Point(a,b),radius(r){}

~Circle(){cout<<\ private:

float radius; };

int main()

{Point *p=new Circle(2.5,1.8,4.5); Circle *pt=new Circle(2.5,1.8,4.5); delete pt; return 0; }

3:解法三

#include using namespace std; class Point {public:

Point(float a,float b):x(a),y(b){}

virtual ~Point(){cout<<\ private: float x; float y; }; .

.

class Circle:public Point {public:

Circle(float a,float b,float r):Point(a,b),radius(r){}

virtual ~Circle(){cout<<\ private: float radius; };

void main()

{Point *p=new Circle(2.5,1.8,4.5); delete p; }

4:

#include using namespace std;

//定义抽象基类Shape class Shape {public:

virtual double area() const =0; //纯虚函数 };

//定义Circle类

class Circle:public Shape {public:

Circle(double r):radius(r){} virtual double area() const {return 3.14159*radius*radius;}; protected:

double radius; };

//定义Rectangle类

class Rectangle:public Shape {public:

Rectangle(double w,double h):width(w),height(h){} virtual double area() const {return width*height;} protected:

double width,height; };

class Triangle:public Shape {public:

Triangle(double w,double h):width(w),height(h){} virtual double area() const {return 0.5*width*height;} .

//结构函数 //定义虚函数 //半径 //结构函数 //定义虚函数 //宽与高 //结构函数 //定义虚函数 .

protected:

double width,height; //宽与高 };

//输出面积的函数

void printArea(const Shape &s)

{cout<

int main() {

Circle circle(12.6); circle

cout<<\ =\

printArea(circle); Rectangle rectangle(4.5,8.4); 象rectangle

cout<<\ printArea(rectangle); 面积

Triangle triangle(4.5,8.4); //建立Triangle类对象 cout<<\ =\

printArea(triangle); //输出triangle的面积 return 0; }

5:

#include using namespace std; //定义抽象基类Shape class Shape {public:

virtual double area() const =0; };

//定义Circle(圆形)类 class Circle:public Shape {public:

Circle(double r):radius(r){} virtual double area() const {return 3.14159*radius*radius;}; protected:

double radius; };

//定义Square(正方形)类 class Square:public Shape .

//建立Circle类对象 //输出circle的面积 //建立Rectangle类对

//输出rectangle的 //纯虚函数 //结构函数 //定义虚函数 //半径 .

{public:

Square(double s):side(s){} //结构函数 virtual double area() const {return side*side;} //定义虚函数 protected: double side; };

//定义Rectangle(矩形)类 class Rectangle:public Shape {public:

Rectangle(double w,double h):width(w),height(h){} //结构函数 virtual double area() const {return width*height;} //定义虚函数 protected:

double width,height; //宽与高 };

//定义Trapezoid(梯形)类 class Trapezoid:public Shape {public:

Trapezoid(double t,double b,double h):top(t),bottom(t),height(h){} //结构函数 virtual double area() const {return 0.5*(top+bottom)*height;} //定义虚函数 protected:

double top,bottom,height; //上底、下底与高 };

//定义Triangle(三角形)类 class Triangle:public Shape {public:

Triangle(double w,double h):width(w),height(h){} //结构函数 virtual double area()const {return 0.5*width*height;} //定义虚函数 protected:

double width,height; //宽与高 };

int main() {

Circle circle(12.6); //建立Circle类对象circle

Square square(3.5); //建立Square类对象square

Rectangle rectangle(4.5,8.4); //建立Rectangle类对象rectangle

Trapezoid trapezoid(2.0,4.5,3.2); //建立Trapezoid类对象trapezoid .

C++面向对象程序设计第六章课后习题答案(第2版—谭浩强).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c96p7g1nxw19da6a52gje3fmdy9ul8q00giy_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top