码迷,mamicode.com
首页 > 编程语言 > 详细

C++多重继承的实现

时间:2014-11-11 00:57:32      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:io   ar   os   sp   数据   on   2014   bs   ad   

//
//  main.cpp
//  test
//
//  Created by Jacedy on 14-11-6.
//  Copyright (c) 2014年 Jacedy. All rights reserved.
//

#include <iostream>
using namespace::std;

//数据类
class CData {
public:
    char name[20];
    
    CData(char NAME[])
    {
        strcpy(name, NAME);
    }
    
    void print()
    {
        printf("姓名:%s\n", name);
    }
};

//教师类
class CTeacher : virtual public CData {
public:
    int sal;
    
    CTeacher(char NAME[], int SAL) : CData(name)    //要先初始化基类!!!
    {
        strcpy(name, NAME);
        sal = SAL;
    }
    
    void print()
    {
        printf("姓名:%s, 工资:%d\n", name, sal);
    }
};

//学生类
class CStudent : virtual public CData {
public:
    int id;
    
    CStudent(char NAME[], int ID) : CData(name)
    {
        strcpy(name, NAME);
        id = ID;
    }
    
    void print()
    {
        printf("姓名:%s, 学号:%d\n", name , id);
    }
};

//研究生类
class CPostgrad : virtual public CStudent {
public:
    char dn[40];
    
    CPostgrad(char NAME[], int ID, char DN[]) : CStudent(name, id),CData(name)
    {
        strcpy(name, NAME);
        strcpy(dn, DN);
    }
    
    void print()
    {
        printf("姓名:%s, 院系:%s\n", name, dn);
    }
};

//教师中的在职研究生类
class CTpost : public CPostgrad, public CTeacher {
public:
    CTpost(char NAME[], int ID, char DN[], int SAL) : CPostgrad(name, id, dn),CTeacher(name, sal),CStudent(name, id),CData(name)
    {
        strcpy(name, NAME);
        sal = SAL;
        strcpy(dn, DN);
    }
    
    void print()
    {
        printf("姓名:%s, 工资:%d, 院系:%s\n", name, sal, dn);
    }
};

int main(void)
{
    CData A("A");
    A.print();
    
    CTeacher B("B", 10000);
    B.print();
    
    CStudent C("C", 12);
    C.print();
    
    CPostgrad D("D", 18, "计算机学院");
    D.print();
    
    CTpost E("E", 22, "计算机学院", 20000);
    E.print();
    
    return 0;
}


C++多重继承的实现

标签:io   ar   os   sp   数据   on   2014   bs   ad   

原文地址:http://my.oschina.net/Jacedy/blog/342846

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!