• 类的继承和封装


    代码
    #include <string.h>

    class CEmployee
    {
    private:
        
    char m_name[30];

    public:
        CEmployee(){};
    //此处,必须实现,以前C++版本是可以的,但vs2010下不可以
        CEmployee(const char *nm)    {
            strcpy_s(m_name, nm);
        }
    };

    class CWage : public CEmployee    //時薪職員
    {
    private:
        
    float m_wage;    //時薪
        float m_hours;    //時間

    public:
        CWage(
    const char *nm) : CEmployee(nm)    {
            
    //CEmployee(nm);//構造函數可以直接調用?前面的代碼==此行?
            m_wage = 250.0;
            m_hours 
    = 40.0;
        }

        
    void setWage(float wage)    {m_wage = wage;}
        
    void setHours(float hours)    {m_hours = hours;}
    };

    //銷售員:有時薪,另外還有銷售額
    class CSales : public CWage    //銷售員
    {
    private:
        
    float m_commission;        //
        float m_sale;                    //銷售數量

    public:
        CSales(
    const char *name) : CWage(name) {
            m_commission 
    = m_sale = 0.0;
        }
        
    void setCommission(float commission){m_commission = commission;}
        
    void setSales(float sale) { m_sale = sale; }
        
    float computePay();
    };

    class CManager : public CEmployee
    {
    private:
        
    float m_salary;
    public:
        CManager(
    const char*name)    { m_salary = 15000; }
        
    void setSalary(float salary) { m_salary = salary; }
        
    float computePay();
    };

    void main01()
    {
        CManager manager(
    "Manager Chen");
        CSales sales(
    "Sales Hou");
        CWage wage(
    "Wage Lee");
    }


  • 相关阅读:
    企业级开发的权限管理
    asp.net mvc 中的ajax
    拖拽(非原创)
    数据库中主键和外键的设计原则
    第六篇续:动态创建 ListView 模板
    动态创建 ASP.NET Web 服务器控件模板(出自MSDN)
    ASP.NET跨页面传值的几种方法
    奇文共赏 史记货殖列传王石传
    需求该如何分析?
    PopupControlExtender 控件的使用(转)
  • 原文地址:https://www.cnblogs.com/flaaash/p/1895116.html
Copyright © 2020-2023  润新知