C++类的基础实现(Company)

原创 2018年04月17日 18:45:44
#include <iostream>
#include <cstring>

using namespace std;

class Sale     //销售额
{
    protected:
        int m_sale;
        static int all_sale;

      public:
        Sale(int s)
        {
            m_sale = s;
            all_sale += s;
        }
};

int Sale::all_sale = 0;

class People
{
    protected:
      char m_name[20];
      int m_salary;
      int m_num;
    public:
    People(const char *name)
    {
        strcpy(m_name, name);
    }

    virtual void show() = 0;
};

class SaleMan : public Sale
{
    protected:
      char m_name[20];
      int m_salary;
    public:
      static int m_num;
      int m_id;

    public:
      SaleMan(const char *name, int s) : Sale(s)
      {
          strcpy(m_name, name);
          m_salary = m_sale * 4/10;
          m_num++;
          m_id = m_num;
      }
      void show()
      {
          cout << "姓名:" << m_name << "  "
               << "职位:"
               << "销售员"
               << "  "
               << "编号"
               << m_id
               << "  "
               << "薪水:" << m_salary << endl;
      }
};

int SaleMan::m_num = 1000;

class SaleManager : public Sale, public People
{
    public:
      SaleManager(const char *name, int s) : Sale(s), People(name)
      {
          m_salary = 4000 +all_sale * 2/10;
      }
      void show()
      {
          cout << "姓名:" << m_name << "  "
               << "职位:"
               << "销售经理"
               << "  "
               << "薪水:" << m_salary << endl;

      }
};

class Manager : public People
{
    public:
      Manager(const char *name) : People(name)
      {
          m_salary = 8000;
      }
      void show()
      {
          cout << "姓名:" << m_name << "  "
               << "职位:"
               << "经理"
               << "  "
               << "薪水:" << m_salary << endl;
      }
};

class Technician : public People
{
    protected:
      int m_time;
    public:
      Technician(const char *name, int t) : People(name)
      {
          m_time = t;
          m_salary = t * 100;
      }
      void show()
      {
          cout << "姓名:" << m_name << "  "
               << "职位:"
               << "技术员"
               << "  "
               << "薪水:" << m_salary << endl;
      }
};

int main(int argc, char const *argv[])
{
    SaleMan a("Loli",9000);
    SaleMan a1("Lila", 5000);
    SaleMan a2("Lancy", 5000);
    SaleMan a3("Lange", 5000);
    SaleManager b("Ricardo",5000);
    Manager c("Liming");
    Technician d("Robot", 135);
    Technician d1("Rilly", 152);

    a.show();
    a1.show();
    a2.show();
    a3.show();
    b.show();
    c.show();
    d.show();
    d1.show();
    //system("cls");
    return 0;
}

计算机等级考试二级C++上机模拟试题11套汇总及答案解释(二)

练习4   一、改错题   使用VC6打开考生文件夹下的工程kt9_1,此工程包含一个源程   序文件kt9_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:   ...
  • u013174689
  • u013174689
  • 2014-03-05 11:16:23
  • 975

emacs 24.4.1 使用company mode智能提示C++程序

company 不是公司,而是两个单词的合成,complete anything。所以不只是用于C++编程。首先使用package system安装company-modeM-x list-packa...
  • sheismylife
  • sheismylife
  • 2015-10-04 17:10:22
  • 4922

C++ 类基础知识

一,抽象与类 生活中充满复杂性,处理复杂性的方法之一是简化与抽象。抽象就是将问题的本质提取出来,并根据特征来描述问题。C++中的类是一种将类转化为用户定义类型的C++工具,它将数据表示与操作数据的方法...
  • cloud323
  • cloud323
  • 2017-04-05 09:36:10
  • 766

c++基础--IO类

1、IO类 头文件iostream     类型istream,wistream从流读取数据     类型ostream,wostream向流写入数据     类型iostream,wiost...
  • u013015642
  • u013015642
  • 2016-03-11 16:25:44
  • 757

C++ 基础:传参的基本形式-基本类型,对象,引用和指针

(1)基本类型 (2)直接传递对象class A { public: A(int param) { m_a = param; } A(const A& b) ...
  • define_us
  • define_us
  • 2016-08-28 22:44:20
  • 442

c++ string类的完整实现!!!

c++ string类的完整实现,标注库有的功能这里基本都有,在此基础上可以进行良好的扩充!!!...
  • focusing_on_cpp
  • focusing_on_cpp
  • 2015-06-29 07:58:43
  • 6248

C++标准库与Java基础类对照表

一、集合类  对象的集合,指如链表,数组,队列这一类的数据结构。在C++标准库中把这些成为Container, 在Java中称为Collection。   C++STL常用Conta...
  • xiamentingtao
  • xiamentingtao
  • 2016-10-07 12:13:07
  • 637

PKU2104K-th Number

K-th Number Time Limit: 20000MS Memory Limit: 65536K Total Submissions: 44766 Accepted:...
  • DCrusher
  • DCrusher
  • 2016-02-02 20:24:38
  • 279

C++ STL 基础及应用(3) 迭代器

迭代器(Iterator)是 STL 的核心技术,提供了统一访问容器元素的方法,为编写通用算法提供了坚实的技术基础。 本章将带你编写一个自带迭代器的数组类和一个自带迭代器的链表类,模拟 STL 中的容...
  • Raito__
  • Raito__
  • 2016-05-24 23:59:57
  • 5694

c++类实现链表

LinklistNode.h #ifndef LINKNODE #define LINKNODE class LinklistNode { public: LinklistNode(); int...
  • a925907195
  • a925907195
  • 2014-12-03 17:43:18
  • 626
收藏助手
不良信息举报
您举报文章:C++类的基础实现(Company)
举报原因:
原因补充:

(最多只允许输入30个字)