面向对象的理解

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();//"收取餐费"函数

}

 

 

 4.多态

虚函数

5.MFC

就是按钮,菜单,数据库链接,多媒体控制等都使用了类库实现。我们实例化调用实现。

posted @ 2023-03-20 23:41  szmtjs10  阅读(45)  评论(0编辑  收藏  举报