面向对象程序设计及C++mooc编程(第五章)--by sCh3n

2023-11-02 22:18

本文主要是介绍面向对象程序设计及C++mooc编程(第五章)--by sCh3n,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第一题

首先定义一个类POINT,有两个int型的保护数据成员x、y表示该类对象在二维坐标系中的坐标位置,定义如下三个公有成员函数:

(1)  构造函数:设置点的初始值;

(2)   成员函数change改变坐标位置

(3)   成员函数show显示点的位置,具体输出形式请参考下面的输出提示;cout<<"("<<x<<","<<y<<")"<<endl;

然后,以类POINT为基类定义派生类CIRCLE,其中增加一个私有数据成员int r表示该圆的半径,定义如下两个公有成员函数:

(1)  构造函数:负责调用基类的构造函数及为本类的半径成员初始化

(2)重新定义show函数显示圆心的位置及半径的值,

#include<iostream>
using namespace std;class POINT
{protected:int x,y;public:POINT(int a,int b):x(a),y(b){}void change(int a,int b){x=a;y=b;}void show(){cout<<"("<<x<<","<<y<<")"<<endl;}
};
class CIRCLE:public POINT
{private:int r;public:CIRCLE(int a,int b,int c):POINT(a,b),r(c){}void show(){cout<<"the center of the circle is:\n";POINT::show( );cout<<"the radius is:"<<r<<endl;}
};
int main ( ){POINT p (2, 3);CIRCLE c (3, 4, 5);cout<<"original p:\n";p.show ();p.change (20,30);cout<<"changed p:\n";p.show ();cout<<"original c:\n";c.show ( );c.change (30,40);cout<<"changed c:\n";c.show ( );return 0;}

第二题

图5-13(见教材p138)是一个多重继承的类继承关系示意图,各类的主要数据成员有说明,请自己定义合理的成员函数,编程实现该继承关系的程序,并定义一个在职研究生对象,先输入相关信息,再输出。

关于数据成员:

数据类Data:成员string name,保存姓名;

教师类Teacher:增加成员float sal,保存工资;

学生类Student:增加成员string id,保存学号;

研究生类Postgrad:增加成员 string dn,保存系别;

教师中的在职研究生类Tpost:不另外定义成员。

关于成员函数: 

    各类定义输出所有数据

成员的函数void print()。

#include<iostream>
using namespace std;
class Data
{protected:string name;public:Data(string a):name(a){}
};
class Teacher:public virtual Data
{protected:float sal;public:Teacher(string a,float b):Data(a),sal(b){}
};
class Student:public virtual Data
{protected:string id;public:Student(string a,string b):Data(a),id(b){}
};
class Postgrad:public Student
{protected:string dn;public:Postgrad(string a,string b,string c):Data(a),Student(a,b),dn(c){}
};
class Tpost:public Teacher,public Postgrad
{public:Tpost(string n,float s,string i,string d):Data(n),Teacher(n,s),Postgrad(n,i,d){}
};
int main()
{string name,id,dn;float sal;cin>>name>>id>>dn>>sal;Tpost tp(name,sal,id,dn);cout<<"The teacher and postgraduate:"<<endl;cout<<"name="<<name<<endl;cout<<"id="<<id<<endl;cout<<"dn="<<dn<<endl;cout<<"sal="<<sal<<endl;
}

这篇关于面向对象程序设计及C++mooc编程(第五章)--by sCh3n的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/333663

相关文章

C++中使用vector存储并遍历数据的基本步骤

《C++中使用vector存储并遍历数据的基本步骤》C++标准模板库(STL)提供了多种容器类型,包括顺序容器、关联容器、无序关联容器和容器适配器,每种容器都有其特定的用途和特性,:本文主要介绍C... 目录(1)容器及简要描述‌php顺序容器‌‌关联容器‌‌无序关联容器‌(基于哈希表):‌容器适配器‌:(

PyCharm接入DeepSeek实现AI编程的操作流程

《PyCharm接入DeepSeek实现AI编程的操作流程》DeepSeek是一家专注于人工智能技术研发的公司,致力于开发高性能、低成本的AI模型,接下来,我们把DeepSeek接入到PyCharm中... 目录引言效果演示创建API key在PyCharm中下载Continue插件配置Continue引言

C++中实现调试日志输出

《C++中实现调试日志输出》在C++编程中,调试日志对于定位问题和优化代码至关重要,本文将介绍几种常用的调试日志输出方法,并教你如何在日志中添加时间戳,希望对大家有所帮助... 目录1. 使用 #ifdef _DEBUG 宏2. 加入时间戳:精确到毫秒3.Windows 和 MFC 中的调试日志方法MFC

深入理解C++ 空类大小

《深入理解C++空类大小》本文主要介绍了C++空类大小,规定空类大小为1字节,主要是为了保证对象的唯一性和可区分性,满足数组元素地址连续的要求,下面就来了解一下... 目录1. 保证对象的唯一性和可区分性2. 满足数组元素地址连续的要求3. 与C++的对象模型和内存管理机制相适配查看类对象内存在C++中,规

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo

C#反射编程之GetConstructor()方法解读

《C#反射编程之GetConstructor()方法解读》C#中Type类的GetConstructor()方法用于获取指定类型的构造函数,该方法有多个重载版本,可以根据不同的参数获取不同特性的构造函... 目录C# GetConstructor()方法有4个重载以GetConstructor(Type[]

C++11的函数包装器std::function使用示例

《C++11的函数包装器std::function使用示例》C++11引入的std::function是最常用的函数包装器,它可以存储任何可调用对象并提供统一的调用接口,以下是关于函数包装器的详细讲解... 目录一、std::function 的基本用法1. 基本语法二、如何使用 std::function

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

C++包装器

包装器 在 C++ 中,“包装器”通常指的是一种设计模式或编程技巧,用于封装其他代码或对象,使其更易于使用、管理或扩展。包装器的概念在编程中非常普遍,可以用于函数、类、库等多个方面。下面是几个常见的 “包装器” 类型: 1. 函数包装器 函数包装器用于封装一个或多个函数,使其接口更统一或更便于调用。例如,std::function 是一个通用的函数包装器,它可以存储任意可调用对象(函数、函数

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�