面向对象的理解
Posted szmtjs10
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象的理解相关的知识,希望对你有一定的参考价值。
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();//"收取餐费"函数
以上是关于面向对象的理解的主要内容,如果未能解决你的问题,请参考以下文章