ex0303.cpp

来自「Visual+C+++6[1].0实用教程代码 Visual+C+++6[1]」· C++ 代码 · 共 89 行

CPP
89
字号
// ex0303.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream.h>
#include <string.h>
class base { //base类,基类
  double price; //单价
  char place[20]; //产地
  int count; //库存量
public:
  base (double pr, char* pl, int cnt) { //构造函数
   price=pr;
   strcpy(place,pl);
   count=cnt;
 }
 void display() { //显示base 类对象数据
   cout<<price<<": "<<place<<" : "<<count<<endl;
 }
 void in_count(int add_cnt){ //增加库存量
   count+=add_cnt;
  }
 void out_count(int del_cnt){ //减少库存量
   count-=del_cnt;
 }
  double total_price(){ //计算总价
   return price*count;
  }
 };
 class base1:public base { //派生类base1
   char size[10]; //增加尺码数据
   public:
    base1(double pr, char* pl, int cnt, char* siz)
    :base (pr,pl,cnt) { //派生类构造函数
     strcpy(size, siz);
    }
   void display () {
    base::display(); //调用基类的display,显示共性数据
    cout <<"尺码:"<<size<<endl; //显示尺码数据
   }
  };
  class base2:public base1 { //派生类base2,由base1 派生
   char style[10]; //增加式样数据
   public:
    base2(double pr, char* pl, int cnt, char* siz, char *sty)
   :base1 (pr, pl, cnt, siz) { //派生类构造函数
   strcpy(style, sty);  
   }
  void display () {
   base1::display(); //调用基类base1 的display
   cout << "样式:"<<style<<endl;
   }
  };
 class base3:public base { //派生类base3
   char size[10]; //增加尺码数据
   char color[10]; //增加颜色数据
   public:
    base3 (double pr, char* pl, int cnt, char* siz, char* col)
    :base(pr, pl, cnt) { //派生类构造函数
    strcpy(size, siz);
    strcpy(color, col);
   } 
  void display () { //显示对象数据
   base::display();
   cout << "尺码:"<<size<<endl;
   cout << "颜色:"<<color<<endl;
  }
 };

int main(int argc, char* argv[])
{
  base1 mybase1(58.6, "北京", 25, "小号");
  base2 mybase2(18.8, "上海", 20, "中号", "小圆领");
  base3 mybase3(322, "广东", 15, "特大号", "红色");
  cout<<"<= mybase1类显示结果==>"<<endl;
  cout<<"单价 产地  数量"<<endl;
  mybase1.display();
  cout<<"<= mybase2类显示结果==>"<<endl;
  cout<<"单价 产地  数量"<<endl;
  mybase2.display();
  cout<<"<= mybase3类显示结果==>"<<endl;
  cout<<"单价 产地  数量"<<endl;
  mybase3.display();
  cout<<"增加数量前的总价:" << mybase3.total_price() <<endl;
  mybase3.in_count(10);
  cout<<"增加数量后的总价:" << mybase3.total_price() <<endl;
  return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?