面向对象试题答案

 阅读以下程序并给出执行结果 

1、

#include<iostream>

using namespace std;

class Add

{

private:

        int x,y;

public:

        Add(int a,int b)

        {

                x=a; y=b;

            cout<<"调用构造函数1"<<endl;

        }

        Add(Add &p)

        {

                x=p.x;      y=p.y;

        cout<<"调用构造函数2"<<endl;

        }

        ~Add()

        {

                cout<<"调用析构函数"<<endl;

        }

        int add(){ return x+y;      }

};

void main()

{

            Add  p1(2,3);

             Add  p2(p1);

            cout<<p2.add()<<endl;

}

2、

#include <iostream>

using namespace std;

class Box

{

public:

Box(int,int,int);       

int volume( );          

private:

int height;

int width;

int length;

};

Box∷Box(int h,int w,int len)   

{

height=h;

width=w;

length=len;

}

int Box∷volume( )                

{return(height*width*length);

}

int main( )

{Box box1(12,25,30);           

cout<<″The volume of box1 is ″<<box1.volume( )<<endl;

Box box2(15,30,21);            

cout<<″The volume of box2 is ″<<box2.volume( )<<endl;

return 0;

}

3、

#include<iostream.h>

class Point

{

 private:

   int X,Y;

public:

  Point(int a=0,int b=0){

        X=a;Y=b;

        cout<<"initializing X="<<X<<",Y="<<Y<<endl;

                }

  Point(Point &p);

  int GetX(){return X;}

  int GetY(){return Y;}

  void Show(){

        cout<<"X="<<X<<",Y="<<Y<<endl;

                }

  ~Point(){

       cout<<"delete…  "<<X<<","<<Y<<endl;

       }

};

Point::Point(Point &p){

   cout<<"Copy Initializing "<<p.X<<","<<p.Y<<endl;

   X=p.X;

   Y=p.Y;

}

void display(Point p){

   p.Show();

   }

void main(void)

{

Point A(24,116);  

cout<<"called display(A)"<<endl;

display(A); 

cout<<"out…"<<endl;   

}

4、

#include <iostream.h>

class Base

{

private:

        int x;

public:

        Base(int a)

        {

                cout<<"constructing Base..."<<endl;

                x=a;

        }

        ~Base()

        {

                cout<<"destructing Base..."<<endl;

        }

};

class Myclass

{

private:

        int n;

public:

        Myclass(int num)

        {

                n=num;

                cout<<"constructing Myclass..."<<endl;

        }

        ~Myclass()

        {

                cout<<"destructing Myclass..."<<endl;

        }

};

class Derive:public Base

{

private:

        int y;

        Myclass bobj;

public:

        Derive(int a,int b,int c):bobj(c),Base(a)

        {

                cout<<"constructing Derive..."<<endl;

                y=b;

        }

        ~Derive()

        {

                cout<<"destructing Derive..."<<endl;

        }

};

void main()

{

        Derive dobj(1,2,3);

}

 阅读以下程序并填空(填上正确的语法成分),使其成为完整的程序 

1、下列程序在构造函数和析构函数中申请和释放类的私有成员,请完成该类的实现。

class MyClass

{

public:

            MyClass(int a);

            ~MyClass();

private:

            int* X;

};

MyClass::MyClass(int a)

{

           ____(1)_____;

       }

MyClass::~MyClassO

{

           ____(2)______;

}

2、在下面程序的横线处填上适当的语句,使该程序执行结果为10。

#include <iostream.h>

class MyClass

{

public:

            ___(3)____         //为x置值

            ___(4)____         //取x值

private:

            int x;

};

void main()

{

MyClass my(10);

cout << my.GetNum() << endl;

}

3、完成下面的类定义。

class MyClass

{

public:

            MyClass( ) { x = 0; }

            friend int GetNum(__(5)__  my);

private:

            int x;

};

int GetNum(__(5)__  my)

{

        return my.x;

}

 编程题 

1、定义一个Point类来处理三维点points(x,y,z).该类有构造函数,拷贝构造函数,negate()成员函数将point的x,y和z值各乘-1, norm()成员函数返回该点到原点(0,0,0)的距离,一个print()成员函数显示x,y,和z的值。

2. 定义一个Person类,它的每个对象表示一个人。数据成员必须包含姓名、出生年份、死亡年份,一个构造函数,一个析构函数,读取数据的成员函数,一个print()成员函数显示所有数据。

答案

 阅读以下程序并给出执行结果 

1、

调用构造函数1

调用构造函数2

5

调用析构函数

调用析构函数

2、

The volume of box1 is 9000

The volume of box2 is 9450

3、

initializing X=24,Y=116

called display(A)

Copy Initializing 24,116

X=24,Y=116

delete… 24,116

out…

delete… 24,116

4、

constructing Base...

constructing Myclass...

constructing Derive...

destructing Derive...

destructing Myclass...

destructing Base...

 阅读以下程序并填空(填上正确的语法成分),使其成为完整的程序 

(1) X=new int(a)

(2) delete X

(3) MyClass(int a){ x=a; };

(4) int GetNum( ){ return x; }

(5) MyClass;

 编程题 

1、定义一个Point类来处理三维点points(x,y,z).该类有构造函数,拷贝构造函数,negate()成员函数将point的x,y和z值各乘-1, norm()成员函数返回该点到原点(0,0,0)的距离,一个print()成员函数显示x,y,和z的值。

#include <math.h>

#include <iostream.h>

class Point

{ public:

    Point(float x=0, float y=0, float z=0): x(x), y(y), z(z) { }

    Point(const Point& p) : x(p.x), y(p.y), z(p.z) { }

    void negate() { x *= -1; y *= -1; z *= -1; }

    double norm() { return sqrt(x*x + y*y + z*z); }

    void print()

    { cout << '(' << x << "," << y << "," << z << ")";

    }

  private:

    float x, y, z;

};

void main()

{ Point p(12,-3,4);

  cout << "p = ";

  p.print();

  cout << ", p.norm() = " << p.norm() << endl;

  p.negate();

  cout << "p = ";

  p.print();

  cout << ", p.norm() = " << p.norm() << endl;

}

2. 定义一个Person类,它的每个对象表示一个人。数据成员必须包含姓名、出生年份、死亡年份,一个构造函数,一析构函数,读取数据的成员函数,一个print()成员函数显示所有数据。

#include <iostream.h>

class Person

{ public:

    Person(char* =0, int =0, int =0);

    ~Person() { delete [] name; }

    char* name() { return name; }

    int born() { return yob; }

    int died() { return yod; }

    void print();

  private:

    int len;

    char* name;

    int yob, yod;

};

void main()

{ Person cb("Charles Babbage",1792,1871);

  cb.print();

}

Person::Person(char* name, int yob, int yod)

        : len(strlen(name)),

        name(new char[len+1]),

        yob(yob),

        yod(yod)

{ memcpy(name, name, len+1);

}

void Person::print()

{ cout << "\tName: " << name << endl;

  if (yob) cout << "\tBorn: " << yob << endl;

  if (yod) cout << "\tDied: " << yod << endl;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/13366.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Web项目版本更新及时通知

背景 单页应用&#xff0c;项目更新时&#xff0c;部分用户会出更新不及时&#xff0c;导致异常的问题。 技术方案 给出版本号&#xff0c;项目每次更新时通知用户&#xff0c;版本已经更新需要刷新页面。 版本号更新方案版本号变更后通知用户哪些用户需要通知&#xff1f;…

Android音视频直播低延迟探究之:WLAN低延迟模式

Android WLAN低延迟模式 Android WLAN低延迟模式是 Android 10 引入的一种功能&#xff0c;允许对延迟敏感的应用将 Wi-Fi 配置为低延迟模式&#xff0c;以减少网络延迟&#xff0c;启动条件如下&#xff1a; Wi-Fi 已启用且设备可以访问互联网。应用已创建并获得 Wi-Fi 锁&a…

Appium配置2024.11.12

百度得知&#xff1a;谷歌从安卓9之后不再提供真机layout inspector查看&#xff0c;仅用于支持ide编写的app调试用 所以最新版android studio的android sdk目录下已经没有了布局查看工具... windows x64操作系统 小米k30 pro手机 安卓手机 Android 12 第一步&#xff1a…

前端使用Canvas实现网页电子签名(兼容移动端和PC端)

实现效果&#xff1a; 要使用Canvas实现移动端网页电子签名&#xff0c;可以按照以下步骤&#xff1a; 在HTML文件中创建一个Canvas元素&#xff0c;并设置其宽度和高度&#xff0c;以适配移动设备的屏幕大小。 // 创建一个canvas元素 let canvas document.createElement(&q…

使用 Python 实现高效网页爬虫——从获取链接到数据保存

前言 在这个时代,网络爬虫已成为数据分析与信息收集不可或缺的技术之一。本文将通过一个具体的Python项目来介绍如何构建一个简单的网络爬虫,它能够自动抓取指定网站的文章链接、标题、正文内容以及图片链接,并将这些信息保存为CSV文件。 目标网站 一、准备工作 在开始编…

跟着尚硅谷学vue2—进阶版4.0—Vuex1.0

5. Vuex 1. 理解 Vuex 1. 多组件共享数据-全局事件总线实现 红线是读&#xff0c;绿线是写 2. 多组件共享数据-vuex实现 vuex 不属于任何组件 3. 求和案例-纯vue版 核心代码 1.Count.vue <template><div><h1>当前求和为&#xff1a;{{ sum }}</h1&…

HTML之列表

练习题&#xff1a; 图所示为一个问卷调查网页&#xff0c;请制作出来。要求&#xff1a;大标题用h1标签&#xff1b;小题目用h3标签&#xff1b;前两个问题使用有序列表&#xff1b;最后一个问题使用无序列表。 代码&#xff1a; <!DOCTYPE html> <html> <he…

如何编写jenkins的流水线

如何编写jenkins的流水线 我们为什么需要编写流水线&#xff1f;新建一个jenkins pipeline的item初识pipeline界面pipeline代码关于取值声明和定义工具使用数据结构 我们为什么需要编写流水线&#xff1f; 这里假如你已经安装了好了jenkins&#xff0c;并且能够正常启动它。 通…

项目管理人员的自我评估与职业目标设定

在当今快速发展的商业环境中&#xff0c;项目管理人员的职业规划至关重要。它不仅涉及到个人职业发展的方向、目标和路径选择&#xff0c;还包括如何提升自身的专业技能、管理能力和行业知识。项目管理人员需要明确自己的职业目标、制定合理的职业发展计划、不断学习新知识和技…

状态空间方程离散化(Matlab符号函数)卡尔曼

// 卡尔曼滤波(4)&#xff1a;扩展卡尔曼滤波 - 知乎 // // matlab 连续系统状态空间表达式的离散化&状态转移矩阵求解_matlab状态方程离散化-CSDN博客 // // // %https://blog.csdn.net/weixin_44051006/article/details/107007916 clear all; clc; syms R1 R2 C1 C…

ubuntu24.04播放语音视频

直接打开ubuntu自带的video播放.mp4文件&#xff0c;弹窗报错如下&#xff1a; 播放此影片需要插件 MPEG-4 AAC 编码器安装方式&#xff1a; sudo apt install gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly sudo apt install ffmpeg验证AA…

音视频入门基础:MPEG2-TS专题(4)——使用工具分析MPEG2-TS传输流

一、引言 有很多工具可以分析MPEG2-TS文件/流&#xff0c;比如Elecard Stream Analyzer、PROMAX TS Analyser、easyice等。下面一一对它们进行简介&#xff08;个人感觉easyice功能更强大一点&#xff09;。 二、Elecard Stream Analyzer 使用Elecard Stream Analyzer工具可以…

C++基础 抽象类 类模板 STL库 QT环境

一、抽象类 1、纯虚函数 在多态中&#xff0c;通常父类中虚函数的实现是毫无意义的&#xff0c;主要都是调用子类重写的内容&#xff0c;因此可以将虚函数改为纯虚函数。 语法&#xff1a; virtual 返回值类型 函数名 (参数列表) 0; 2. 抽象类 1) 概念 有纯虚函数所在的类…

c语言选择排序

选择排序思想&#xff1a; 反复地从未排序部分选择最小&#xff08;或最大&#xff09;的元素&#xff0c;将其放到已排序部分的末尾&#xff1b; 首先用一个变量min来保存数组第一个元素的下标&#xff0c;然后用这个下标访问这个元素&#xff0c;将这个元素与它后面的元素相…

数字后端教程之Innovus report_property和get_property使用方法及应用案例

数字IC后端实现Innovus中使用report_property可以报告出各种各样object的属性&#xff0c;主要有cell&#xff0c;net&#xff0c;PG Net&#xff0c;Pin&#xff0c;时钟clock&#xff0c;时序库lib属性&#xff0c;Design属性&#xff0c;timing path&#xff0c;timin arc等…

Golang | Leetcode Golang题解之第560题和为K的子数组

题目&#xff1a; 题解&#xff1a; func subarraySum(nums []int, k int) int {count, pre : 0, 0m : map[int]int{}m[0] 1for i : 0; i < len(nums); i {pre nums[i]if _, ok : m[pre - k]; ok {count m[pre - k]}m[pre] 1}return count }

OpenCompass 评测 InternLM-1.8B 实践

1. API评测 首先我们创建模型的配置文件&#xff0c;我们需要定义评测模型的类型&#xff0c;是OpenAISDK类型&#xff0c;然后是模型名称&#xff0c;请求地址和API等等内容。然后我们通过命令行python run.py --models puyu_api.py --datasets demo_cmmlu_chat_gen.py --deb…

【算法】——二分查找合集

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 零&#xff1a;二分查找工具 1&#xff1a;最基础模版 2&#xff1a;mid落点问题 一&#xff1a;最…

Python 的 Pygame 库,编写简单的 Flappy Bird 游戏

Pygame 是一个用 Python 编写的开源游戏开发框架&#xff0c;专门用于编写 2D 游戏。它提供了丰富的工具和功能&#xff0c;使得开发者能够快速实现游戏中的图形渲染、声音播放、输入处理和动画效果等功能。Pygame 非常适合初学者和想要快速创建游戏原型的开发者。 Pygame 的主…

Ubuntu上搭建Flink Standalone集群

Ubuntu上搭建Flink Standalone集群 本文部分内容转自如下链接。 环境说明 ubuntu 22.06 先执行apt-get update更新环境 第1步 安装JDK 通过apt自动拉取 openjdk8 apt-get install openjdk-8-jdk执行java -version&#xff0c;如果能显示Java版本号&#xff0c;表示安装并…