C++day5(静态成员、类的继承、多继承)

一、Xmind整理:

二、上课笔记整理:

1.静态数据成员+静态成员函数(银行账户实例)

#include <iostream>

using namespace std;

class BankAccount
{
private:
    double balance;   //余额
    static double interest_rate;   //利率
public:
    //无参构造函数
    BankAccount ()
    {

    }
    //有参构造函数
    BankAccount(double balance):balance(balance)
    {

    }
    //静态成员函数,获取当前利率
    static double getInterestRate()
    {
        return interest_rate;
    }
    //静态成员函数,设置当前利率、
    static double setInterestRate(double rate)
    {
        interest_rate = rate;
    }
    //静态成员函数,获取连本带利的全额
    static double getLastMoney(BankAccount &account)
    {
        return account.balance*(1+interest_rate);
    }
};

double BankAccount::interest_rate = 0.05;

int main()
{
    cout << "当前利率:" << BankAccount::getInterestRate() << endl;

    BankAccount::setInterestRate(0.03);
    cout << "当前利率:" << BankAccount::getInterestRate() << endl;

    BankAccount account1(2000.0);
    BankAccount account2(3000.0);
    cout << "第一个人连本带利的余额为:" << BankAccount::getLastMoney(account1) << endl;

    return 0;
}

2.类的继承

#include <iostream>

using namespace std;

//封装 人  类  父类/基类
class Person
{
private:
    string name;
protected:
    int age;
public:
    int h;
public:
    //无参构造函数
    Person()
    {
        cout << "父类的无参构造函数" << endl;
    }

    //有参构造
    Person(string name, int age, int h):name(name),age(age),h(h)
    {
        cout << "父类的有参构造函数" << endl;
    }
    //拷贝构造函数
    Person(const Person & other):name(other.name),age(other.age),h(other.h)
    {
        cout << "父类的拷贝构造函数"  << endl;
    }

    //拷贝赋值函数
    Person & operator=(const Person &p)
    {
        name = p.name;
        age = p.age;
        h = p.h;
        cout << "父类的拷贝赋值函数" << endl;
        return  *this;
    }

    void show()
    {
        cout << "父类的show" << endl;
    }
};

//封装 学生 类   共有继承人 类
class Stu:public Person   //子类 、派生类
{
private:
    int id;
    int math;


public:
    //无参构造函数
    Stu()
    {
        cout << "子类的无参构造函数" << endl;
    }

    //有参构造函数
    Stu(string name, int age, int h, int id, int math):Person(name,age,h),id(id),math(math)
    {
        cout << "子类的有参构造函数" << endl;
    }

    //拷贝构造函数
    Stu(const Stu & s):id(s.id),math(s.math),Person(s)
    {
        cout << "子类的拷贝构造函数" << endl;
    }

    //拷贝赋值函数
    Stu & operator=(const Stu & s)
    {
        Person::operator=(s);
        id = s.id;
        math = s.math;
        cout << "子类的拷贝赋值函数" << endl;
        return *this;
    }

    void show()
    {
        cout << "子类的show" << endl;
        cout << h << endl; //通过共有继承,类外、子类可以访问父类共有成员
        cout << age << endl; //通过共有继承,子类可以访问父类保护成员,类外不可以访问
        //cout << name << endl;//通过共有继承,子类不可访问父类私有成员,类外不可以访问
    }
};

int main()
{
    Stu s("zhangsan",12,190,1001,78);
    Stu s2=s;

    Stu s3;
    s3 = s2;

//    s.show();
//    s.Person::show();

    return 0;
}

3.多继承

#include <iostream>

using namespace std;

class Sofa
{
private:
    string sitting;
public:
    //无参构造函数
    Sofa()
    {
        cout << "沙发的无参构造" << endl;
    }
    //有参构造函数
    Sofa(string s):sitting(s)
    {
        cout << "沙发的有参构造" << endl;
    }
    void display()
    {
        cout << sitting << endl;
    }
};

class Bed
{
private:
    string sleep;
public:
    //无参构造函数
    Bed()
    {
        cout << "床的无参构造" << endl;
    }
    //有参构造函数
    Bed(string(s)):sleep(s)
    {
         cout << "床的有参构造" << endl;
    }
    void display()
    {
        cout << sleep << endl;
    }
};

class Sofa_Bed:public Bed,public Sofa
{
private:
    int w;
public:
    //无参构造函数
    Sofa_Bed()
    {
        cout << "沙发床的无参构造" << endl;
    }
    //有参构造函数
    Sofa_Bed(string sit, string s, int w):Bed(s),Sofa(sit),w(w)
    {
         cout << "沙发床的有参构造" << endl;
    }
};
int main()
{
    Sofa_Bed(s);
    Sofa_Bed s1("可坐","可躺",123);
    s1.Sofa::display();
    s1.Bed::display();
    return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Cortex-M3权威指南】学习笔记2 - 指令集

目录 指令集汇编语言基础UAL 近距离检视指令数据传输数据处理子程呼叫与无条件跳转指令标志位与条件转移指令隔离指令饱和运算 CM3 中新引入指令MRS\MSRIF-THENCBZ/CBNZSDIV/UDIVREV RBITSXTBTBB,TBH 指令集 汇编语言基础 一条简单的汇编指令格式&#xff08;注释使用一个分号…

持续集成与持续交付:现代软件测试的变革之路

引言 在数字化时代&#xff0c;软件开发的速度和复杂性都在不断增加。为了满足市场的需求&#xff0c;企业需要更快、更高效地交付高质量的软件产品。在这样的背景下&#xff0c;持续集成与持续交付&#xff08;CI/CD&#xff09;成为了软件开发和测试的核心实践。 软件开发的…

UE4/5的Custom节点:在VScode使用HLSL(新手入门用)

目录 custom节点 VSCode环境安装 将VSCode里面的代码放入Custom中 custom节点 可以看到这是一个简单的Custom节点&#xff1a; 而里面是可以填写代码的&#xff1a; 但是在这里面去写代码会发现十分的繁琐【按下enter后&#xff0c;不会换行&#xff0c;也不会自动缩进】 …

Android scrollTo、scrollBy、以及scroller详解 自定义ViewPager

Scroller VelocityTracker VelocityTracker 是一个速度跟踪器&#xff0c;通过用户操作时&#xff08;通常在 View 的 onTouchEvent 方法中&#xff09;传进去一系列的 Event&#xff0c;该类就可以计算出用户手指滑动的速度&#xff0c;开发者可以方便地获取这些参数去做其他…

jemter连接数据json断言

文章目录 一、jmeter连接数据库1、加载JDBC驱动2、连接数据3、SQL Query的Query Type使用方法&#xff1a;4、Variable Name使用方法&#xff1a;5、Result variable name使用方法&#xff1a; 二、Json响应断言1、添加 》 断言 》 JSON断言2、JSON断言界面参数说明&#xff1a…

RH1288V3 - 初识物理服务器

如果你拥有一台物理服务器(不是云服务器) 个人比较推荐你用物理服务器&#xff0c;虽然性能会比云要来的差&#xff0c;但是不用每月交钱上。云服务固然方便&#xff0c;但是几个核的性能和一点存储&#xff0c;想做一个动漫网站固然要很多mp4这种影视资源&#xff0c;云服务器…

React+Typescript 父子组件事件传值

好 之前我们将 state 状态管理简单过了一下 那么 本文 我们来研究一下事假处理 点击事件上文中我们已经用过了 这里 我们就不去讲了 主要来说说 父子之间的事件 我们直接来编写一个小dom 我们父组件 编写代码如下 import Hello from "./components/hello";functio…

mysql profiling profiles profile

要想优化一条 Query&#xff0c;我们就需要清楚的知道这条 Query 的性能瓶颈到底在哪里&#xff0c;是消耗的 CPU计算太多&#xff0c;还是需要的的 IO 操作太多&#xff1f;要想能够清楚的了解这些信息&#xff0c;在 MySQL 5.0 和 MySQL 5.1正式版中已经可以非常容易做到了&a…

k8s之Pod及Probe 探针机制(健康检查机制)

文章目录 1、Pod1.1、定义1.2、Pod的形式1.3、Pod的使用1.4、 Pod生命周期1.5、初始化容器1.6、临时容器1.6.1、定义1.6.2、使用临时容器的步骤 1.7、静态Pod1.8、创建带标签的pod1.9、容器生命周期回调1.10、容器镜像使用秘钥从私有仓库下载1.11、多容器协同工作 2、Probe 探针…

第二讲Java基本语法(变量、数据类型、运算符)

一、前言导读 上一讲,我们安装java的开发工具idea,并且简单介绍如何使用,初步认识了Java的helloworld,我们写了第一行代码,有了初步的印象,接下来我们将真正展开对于java的了解,从这一讲开始,请大家做好笔记,改背的背。为什么说Java是一门编程语言呢,主要是他跟英语一…

基于单片机串口控制直流电机调速

一、系统方案 (2)本设计采用STC89C5单片机作为主控器&#xff0c;串口控制直流电机调速&#xff0c;串口助手发送1-8&#xff0c;改变电机速度&#xff0c;数码管显示对应速度。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 1、首先是系统初始化 TMOD0x21;//定…

❤ 给自己的mac系统上安装java环境

❤ 给自己的mac系统上安装java环境 &#x1f353; 作为前端工程师如何给自己的mac系统上安装java环境 &#x1f34e; 最近因为自己的一些项目需求&#xff0c;mac电脑上需要安装一些后台的java环境&#xff0c;用来跑后台的java程序&#xff0c;于是从一个前端工程师的角度安…

淘宝API技术解析,实现关键词搜索淘宝商品(商品详情接口等)

淘宝提供了开放平台接口&#xff08;API&#xff09;来实现按图搜索淘宝商品的功能。您可以通过以下步骤来实现&#xff1a; 获取开放平台的访问权限&#xff1a;首先&#xff0c;您需要在淘宝开放平台创建一个应用&#xff0c;获取访问淘宝API的权限。具体的申请步骤和要求可以…

简单js逆向案例(2)

文章目录 前文分析完整代码结尾 前文 本文章中所有内容仅供学习交流&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01; 分析 目标网址 aHR0cHM6Ly9zZWFyY2guYmlkY2VudGV…

SLAM十四讲学习笔记 第二期:部分课后实践代码

持续更新.... 前期准备第二讲实验一&#xff1a;简单输出 第五讲任务一&#xff1a;imageBasics&#xff08;Ubuntu配置opencv&#xff09;任务二&#xff1a;双目匹配点云&#xff08;Ubuntu配置pangolin&#xff09;检验部分我认为可以加深对CMake的理解 任务三&#xff1a;r…

10*1000【2】

知识: -----------金融科技背后的技术---------------- -------------三个数字化趋势 1.数据爆炸&#xff1a;internet of everything&#xff08;iot&#xff09;&#xff1b;实时贡献数据&#xff1b;公有云服务->提供了灵活的计算和存储。 2.由计算能力驱动的&#x…

Android Xfermode 使用解析

自定义绘制之图片 canvar.drawBitmap() ,BitMapFactory private fun getBitmap(width: Int): Bitmap? {val option BitmapFactory.Options()option.inJustDecodeBounds trueBitmapFactory.decodeResource(resources, R.mipmap.android111,option)option.inJustDecodeBounds…

Oracle数据库快速入门

前言&#xff1a; 我想现在很多人的入门数据库都是mysql&#xff0c;但是由于工作中会接触到Oracle数据库&#xff0c;如果你有MySQL的基础的话&#xff0c;这篇文章能让你很快掌握Oracle。 目录 1.体系结构 2.创建用户和表空间 2.1.创建表空间 2.2.创建用户 3.数据类型…

Jvm之JIT优化详细解释

文章目录 一、JIT 产生的背景二、HotSpot虚拟机内置JIT编译器1. Client Compiler2. Server Compiler3. 查看本地编译器模式 三、常见热点探测技术1. 基于计数器的热点探测2. 基于采样的热点探测2.1 方法调用计数器2.2 回边计数器 四、常见JIT优化手段1. 公共子表达式消除2. 方法…

NGINX的速率限制(限流)

NGINX 的速率限制&#xff08;限流&#xff09; NGINX最有用但经常被误解和配置错误的功能之一是限流。它允许您限制用户在给定时间段内可以发出的HTTP请求量。 限流可以用于安全目的&#xff0c;例如减慢暴力破解密码的攻击。它可以通过限制请求速率为真实用户的典型值来帮助…