首页 > 其他分享 >面向对象的理解

面向对象的理解

时间:2023-03-20 23:56:44浏览次数:34  
标签:Customer cout void namespace char 面向对象 理解

c++面向对象的理解

1.介绍

面向过程,就是步骤。

面向对象,很符合我们现在的社会方式,你面试程序员,也是前端程序员,后端程序员的应聘,不是面向某个具体的程序说步骤。

2.案例:

  去饭店吃饭

2.1 面向过程的 

#include <iostream>
using namespace std;

void main()
{
    cout<<"引导入座"<<endl;
    cout<<"递菜单"<<endl;
    cout<<"点餐"<<endl;
    cout<<"告诉厨师菜谱"<<endl;
    cout<<"做菜"<<endl;
    cout<<"用餐"<<endl;
    cout<<"计算餐费"<<endl;
    cout<<"支付餐费"<<endl;
    cout<<"收取餐费"<<endl;
}

 

再引申一下,形成函数调用。但这个不是面向对象

#include <iostream>
using namespace std;
void ydrz(){
    cout<<"引导入座"<<endl;
}
void dcd(){
    cout<<"递菜单"<<endl;
}
void dc(){
    cout<<"点餐"<<endl;
}
void gscscd(){
    cout<<"告诉厨师菜谱"<<endl;
}
void zc(){
    cout<<"做菜"<<endl;
}
void yc(){
        cout<<"用餐"<<endl;
    
}
void jscf(){
    cout<<"计算餐费"<<endl;

}
void zfcf(){
    
    cout<<"支付餐费"<<endl;
    
}
void sqcf(){
    
    cout<<"收取餐费"<<endl;
}

void main()
{
    ydrz();//引导入座函数
    dcd();//递菜单函数
    dc();//点餐函数"
    gscscd();//"告诉厨师菜谱"函数
    zc();//"做菜"函数
    yc();//"用餐"函数
    jscf();//"计算餐费"函数
    zfcf();//"支付餐费"函数
    sqcf();//"收取餐费"函数

}

 

2.2 面向对象

#include <iostream>
using namespace std;
class Customer{
private:
    char name;
    char sex;
    char phoneNumber; 
public:
    Customer(){
    }
    ~Customer(){
    }
    void dc(){
        cout<<"点餐"<<endl;
    }
    void yc(){
        cout<<"用餐"<<endl;

    }
    void zfcf(){

        cout<<"支付餐费"<<endl;

    }
};
class Waiter
{
private:
    char name;
    char sex;
    char phoneNumber; 
public:
    void ydrz(){
        cout<<"引导入座"<<endl;
    }
    void dcd(){
        cout<<"递菜单"<<endl;
    }

    void gscscd(){
        cout<<"告诉厨师菜谱"<<endl;
    }
};
class Cook{
private:
    char name;
    char sex;
    char phoneNumber; 
public:
    void zc(){
        cout<<"做菜"<<endl;
    }

};

class Cashier
{
private:
    char name;
    char sex;
    char phoneNumber; 
public:
    void jscf(){
        cout<<"计算餐费"<<endl;
    }

    void sqcf(){
        cout<<"收取餐费"<<endl;
    }
};


void main()
{
    Customer zhangsan;
    Waiter   xiaoming;
    Cook     laowang;
    Cashier  xiaohong;
    xiaoming.ydrz();//"引导入座"函数
    xiaoming.dcd();//"递菜单"函数
    zhangsan.dc();//"点餐"函数
    xiaoming.gscscd();//"告诉厨师菜谱"函数
    laowang.zc();//"做菜"函数
    zhangsan.yc();//"用餐"函数
    xiaohong.jscf();//"计算餐费"函数
    zhangsan.zfcf();//"支付餐费"函数
    xiaohong.sqcf();//"收取餐费"函数

}

 

运行结果一致,

 

3.继承和多态

上例:老王(laowang)厨师,有个儿子小王厨师,继承了老王厨师会的所有菜品,还有创新,小王厨师的类里能实现的方法(会做的事情)就不要写全部菜品,只写创新的菜品。、

#include <iostream>
using namespace std;
class Customer{
private:
    char name;
    char sex;
    char phoneNumber; 
public:
    Customer(){
    }
    ~Customer(){
    }
    void dc(){
        cout<<"点餐"<<endl;
    }
    void yc(){
        cout<<"用餐"<<endl;

    }
    void zfcf(){

        cout<<"支付餐费"<<endl;

    }
};
class Waiter
{
private:
    char name;
    char sex;
    char phoneNumber; 
public:
    void ydrz(){
        cout<<"引导入座"<<endl;
    }
    void dcd(){
        cout<<"递菜单"<<endl;
    }

    void gscscd(){
        cout<<"告诉厨师菜谱"<<endl;
    }
};
class Cook{
private:
    char name;
    char sex;
    char phoneNumber; 
public:
    void zc(){
        cout<<"做菜"<<endl;
    }

};

class newCook:public Cook
{
public:
    void zmb(){
        cout<<"做面包"<<endl;
    }
};


class Cashier
{
private:
    char name;
    char sex;
    char phoneNumber; 
public:
    void jscf(){
        cout<<"计算餐费"<<endl;
    }

    void sqcf(){
        cout<<"收取餐费"<<endl;
    }
};


void main()
{
    Customer zhangsan;
    Waiter   xiaoming;
    Cook     laowang;
    newCook  xiaowang;
    Cashier  xiaohong;
    xiaoming.ydrz();//"引导入座"函数
    xiaoming.dcd();//"递菜单"函数
    zhangsan.dc();//"点餐"函数
    xiaoming.gscscd();//"告诉厨师菜谱"函数
    laowang.zc();//"做菜"函数
    xiaowang.zc();//小王"做菜"函数
    xiaowang.zmb();//小王"做面包"函数
    zhangsan.yc();//"用餐"函数
    xiaohong.jscf();//"计算餐费"函数
    zhangsan.zfcf();//"支付餐费"函数
    xiaohong.sqcf();//"收取餐费"函数

}

 

 

 

标签:Customer,cout,void,namespace,char,面向对象,理解
From: https://www.cnblogs.com/szmtjs10/p/17238315.html

相关文章

  • 理解ASP.NET Core - 过滤器(Filters)
    Filter概览如果你是从ASP.NET一路走过来的,那么你一定对过滤器(Filter)不陌生。当然,ASP.NETCore仍然继承了过滤器机制。过滤器运行在过滤器管道中,这是一张官方的图,很好地......
  • 深入理解Go语言中的sync.Cond
    1.简介本文将介绍Go语言中的sync.Cond并发原语,包括sync.Cond的基本使用方法、实现原理、使用注意事项以及常见的使用使用场景。能够更好地理解和应用Cond来实现g......
  • Go语言:利用 TDD 测试驱动开发帮助理解数组与动态数组(切片)的区别
    ArrayVSSlice数组允许你以特定的顺序在变量中存储相同类型的多个元素。对于数组来说,最常见的就是迭代数组中的元素。我们创建一个Sum函数,它使......
  • 我可以帮你理解Java方法的传递方式
    你好,这是Bing。我可以帮你理解Java方法的传递方式。......
  • 文件系统理解
    一、inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一......
  • 《深入理解计算机系统》第四章学习笔记 处理器体系结构
    一个处理器支持的指令和指令的字节级编码称为它的指令集体系结构。不同的处理器“家族”,例如IntelIA32和x86-64、IBM/FreescalePower和ARM处理器家族,都有不同的ISA。一个......
  • 面向对象基础
    A2:类与实例类是什么?一切事物皆对象,即所有的东西都是对象,对象是可以看到、摸到、感觉到、听到、闻到、尝到的东西。对象是一个自包含的实体,用一组可识别的特性和行为来识别......
  • 小白如何从头理解FDB的运行机制和原理(入门版)
    什么是keyvalue分布式存储   Key-value分布式存储是一种高性能、可伸缩性和容错性强的分布式存储系统,它将数据以键值对的形式存储在分布式系统中的......
  • Python基础:面向对象-继承和多态
    一、继承Python面向对象的继承指的是多个类之间的所属关系,即子类默认继承父类的所有属性的方法。作用:可以减少代码重复,提升代码复用率。简单示例如下:#父类AclassAni......
  • 【项目实战典型案例】21.面向对象复用、面向对象实现、立体化权限落地
    目录​​一:背景介绍​​​​1、针对于激励配置的功能体现出来的:面向对象的思想就可以实现极大程度的复用性的问题​​​​2、脱离学习通设计图,过程化,如何用面向对象的思想来......