第十四周----阅读程序(1)(2)

2023-11-05 14:50
文章标签 第十四 阅读程序

本文主要是介绍第十四周----阅读程序(1)(2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

/*
* 程序的版权和版本声明部分
* Copyright (c)2013, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: object.cpp
* 作者:赵晓晨
* 完成日期: 2013年05月31日
* 版本号: v1.0
* 输入描述:无
* 问题描述:无
* 程序输出:无
*/
#include <iostream>
using namespace std;
class Vehicle  //交通工具
{
public:
void run() const
{
cout << "run a vehicle. "<<endl;
}
};
class Car: public Vehicle  //汽车
{
public:
void run() const
{
cout << "run a car. "<<endl;
}
};
class Airplane: public Vehicle  //飞机
{
public:
void run() const
{
cout << "run a airplane. "<<endl;
}
};
int main()
{
cout<<"(a) 直接用对象访问成员函数: "<<endl;
Vehicle v;
v.run();
Car car;
Airplane airplane;
car.run();
airplane.run();
cout<<"(b)用指向基类的指针访问成员函数: "<<endl;
Vehicle *vp;
vp=&car;
vp->run();
vp=&airplane;
vp->run();
return 0;
}


结果:

体会:

当基类的指针指向派生类时,用指针调用同名成员函数,执行调用同名成员函数,执行的时基类的成员函数。

因为:

cout<<"(b)用指向基类的指针访问成员函数: "<<endl;
Vehicle *vp;
vp=&car;
vp->run();
vp=&airplane;

vp->run();

通过指向基类的指针只能访问派生类中的基类成员,而不能访问派生类增加的成员。

 

/*
* 程序的版权和版本声明部分
* Copyright (c)2013, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: object.cpp
* 作者:赵晓晨
* 完成日期: 2013年05月31日
* 版本号: v1.0
* 输入描述:无
* 问题描述:无
* 程序输出:无
*/
#include <iostream>
using namespace std;
class Vehicle  //交通工具
{
public:
virtual void run() const
{
cout << "run a vehicle. "<<endl;
}//run 为虚函数
};
class Car: public Vehicle  //汽车
{
public:
void run() const
{
cout << "run a car. "<<endl;
}
};
class Airplane: public Vehicle  //飞机
{
public:
void run() const
{
cout << "run a airplane. "<<endl;
}
};
int main()
{
cout<<"(a) 直接用对象访问成员函数: "<<endl;
Vehicle v;
v.run();
Car car;
Airplane airplane;
car.run();
airplane.run();
cout<<"(b)用指向基类的指针访问成员函数: "<<endl;
Vehicle *vp;
vp=&car;
vp->run();
vp=&airplane;
vp->run();
return 0;
}

结果:

体会:

当基类的指针指向派生类时,用指针调用同名成员函数,执行的是派生类的成员函数。

因为:

virtual void run() const
    {
        cout << "run a vehicle. "<<endl;
    }//run 为虚函数

多态性就是:向不同的对象发送同一个行为,不同的对象在接收时会产生不同的行为,这就是多态性,所以产生的结果就是各自所要表达的结果

 

 

这篇关于第十四周----阅读程序(1)(2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

【Linux】进程间通信(IPC)(第十四篇)

目录 1.消息队列 2.管道机制 1.匿名管道(PIPE) 2.命名管道 3.MMAP内存共享映射 4.信号 5.信号量 6.套接字 7.共享内存通信 进程用户空间是相互独立的,一般而言是不能相互访问的。但很多情况下进程间需要互相通信,来完成系统的某项功能。进程通过与内核及其它进程之间的互相通信来协调它们的行为。 1.进程间通信的应用场景 数据传输:一个进程需要

Django 第十四课 -- 用户认证(Auth)组件

Django 用户认证(Auth)组件一般用在用户的登录注册上,用于判断当前的用户是否合法,并跳转到登陆成功或失败页面。 Django 用户认证(Auth)组件需要导入 auth 模块: # 认证模块from django.contrib import auth# 对应数据库from django.contrib.auth.models import User 返回值是用户对象。

第十四节:学习Springboot 的restful接口风格(自学Spring boot 3.x的第三天)

这节记录下自己学习restful的记录。 增(PostMapping) /*** 保存学生* @return*/@PostMappingpublic Student save(@RequestBody Student student){studentService.save(student);return student;} 注意:传参使用RequestBody 删(DeleteM

第十四题(升序数组中寻找和为特定数的两个元素)

题目:输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字。 要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。 例如输入数组1、2、4、7、11、15 和数字15。由于4+11=15,因此输出4 和11。 namespace MS100P_14{void find2Addends(int data[],int l

AIGC时代算法工程师的面试秘籍(2024.5.13-5.26第十四式) |【三年面试五年模拟】

写在前面 【三年面试五年模拟】旨在整理&挖掘AI算法工程师在实习/校招/社招时所需的干货知识点与面试方法,力求让读者在获得心仪offer的同时,增强技术基本面。也欢迎大家提出宝贵的优化建议,一起交流学习💪 欢迎大家关注Rocky的公众号:WeThinkIn 欢迎大家关注Rocky的知乎:Rocky Ding AIGC算法工程师面试面经秘籍分享:WeThinkIn/Interview-

数据库系统概论(超详解!!!) 第十四节 数据库恢复技术

1.事务的基本概念 1.事务 事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。 事务和程序是两个概念, 在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。 一个程序通常包含多个事务 。 事务是恢复和并发控制的基本单位 定义事务: 显式定义方式 事务正常结束  。 提交事务的所有操作(读+更

redis实战第十四篇 redis cluster ask重定向

redis cluster除了有一个moved重定向,还存在ask重定向。ask重定向代表的状态比较特别,它是当slot处于迁移状态时才会发生。例如:一个slot存在三个key,分别为hello1、hello2、hello3,假设此时slot正在处于迁移状态,hello1已经迁移到了目标节点,此时如果在源节点获取hello1,则会报出ask重定向错误。 下面通过手动迁移slot来模拟ask重定向

Flutter第十四弹 抽屉菜单效果

目标: 1.怎么构建抽屉菜单效果? 2.抽屉菜单怎么定制? 一、抽屉菜单 侧滑抽屉菜单效果 1.1 抽屉菜单入口 Flutter 的脚手架Scaffold,默认提供了抽屉菜单效果入口。 主页面采用一个简单的页面,侧滑菜单首先使用一个Image,先看看侧滑效果。  import 'package:flutter/cupertino.dart';import 'packa

信息学奥赛初赛天天练-29-CSP-J2022阅读程序-掌握递归、递推、动态规划、二分与极值函数应用

PDF文档公众号回复关键字:20240619 2022 CSP-J 阅读程序2 阅读程序(判断题1.5分 选择题3分 共计40分 ) 01 #include <algorithm>02 #include <iostream>03 #include <limits>04 05 using namespace std;06 07 const int MAXN = 105;08

【捷哥浅谈PHP】第十四弹---NoSQL数据库之PHP连接MongoDB

大家好,我又来跟大家啰嗦了,今天外面的天气由于阴天好像不是很热,相比前几天的持续高温,今天已经凉爽了很多,不过出门要记得带伞哦!好了,今天我们就来完成唐僧师徒的取经大业! 上一回我们讲了MongoDB的游标,索引和聚合,本回我们接着来搞定我们的PHP连接MongoDB数据库! 今天我们来搞定MongoDB的4个核心类: 1,针对mongoDB连接的操作:M