标题:虚基类问题!忙各位帮忙解决一下!
只看楼主
IT男year
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:82
专家分:106
注 册:2013-6-9
结帖率:100%
 问题点数:0 回复次数:3 
虚基类问题!忙各位帮忙解决一下!
#include<iostream>
#include<string>
using namespace std;

/*********数据类*********/
class date
{
private:
    string name;//姓名
public:
    date();//无参构造函数
    date(string name);//有参构造函数
    void print();//输出函数
};

/*********教师类*********/
class teacher:virtual public date
{
private:
    float salary;//薪资
public:
    teacher();//无参构造函数
    teacher(string name,float salary);//有参构造函数
    void print();//输出函数
};

/*********学生类*********/
class student:virtual public date
{
private:
    string number;//学号
public:
    student();//无参构造函数
    student(string name,string number);//有参构造函数
    void print();//输出函数
};

/*********研究生类*********/
class postgrad:public student
{
private:
    string dn;//系别
public:
    postgrad();//无参构造函数
    postgrad(string name,string number,string dn);//有参构造函数
    void print();//输出函数
};

/*********在职研究生类*********/
class tpost:public teacher,public postgrad
{
public:
    tpost();//无参构造函数
    tpost(string name,string number,string dn);//有参构造函数
    void print();//输出函数
};

/*********主函数*********/
int main()
{
    return 0;
}


/*********数据类成员函数的定义*********/
date::date()//无参构造函数
{
}
date::date(string name)//有参构造函数
{
    this->name=name;
}
void date::print()//输出函数
{
    cout<<"姓名:"<<name;
}

/*********教师类成员函数的定义*********/
teacher::teacher()//无参构造函数
{
}
teacher::teacher(string name,float salary):date(name)//有参构造函数
{
    this->salary=salary;
}
void teacher::print()//输出函数
{
    date::print();
    cout<<"薪水:"<<salary;
}

/*********学生类成员函数的定义*********/
student::student()//无参构造函数
{
}
student::student(string name,string number):date(name)//有参构造函数
{
    this->number=number;
}
void student::print()//输出函数
{
    date::print();
    cout<<"学号:"<<number;
}

/*********研究生类成员函数的定义*********/
postgrad::postgrad()//无参构造函数
{
}
postgrad::postgrad(string name,string number,string dn):student(name,number)//有参构造函数
{
    this->dn=dn;
}   
void postgrad::print()//输出函数
{
    student::print();
    cout<<"所属系:"<<dn;
}

/*********在职研究生类成员函数的定义*********/
tpost::tpost()//无参构造函数
{
}
tpost::tpost(string name,float salary,string number,string dn):teacher(name,salary),postgrad(name,number,dn),date(name)//有参构造函数
{
}
void tpost::print();//输出函数
{
    postgrad::print();
}
数据类(date)被教师类(teacher)继承、数据类(date)被学生类(student)继承,学生类(student)被研究生类(postgrad)继承,教师类(teacher)和研究生类(postgrad)被
在职研究生类(tpost)继承。我想把数据类(date)声明为虚基类可以吗?可以的话,怎么声明???
搜索更多相关主题的帖子: teacher private include public 教师 
2013-11-24 21:16
blueskiner
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:227
专家分:707
注 册:2008-9-22
得分:0 
数据的英文应该是data吧?不是date(日期);
貌似就是你这种声明,值得提一下的是,派生自虚基类的子类,可以指定在子类初始化成员列表对虚基类的构造进行调用

[ 本帖最后由 blueskiner 于 2013-11-25 09:58 编辑 ]
2013-11-25 09:48
blueskiner
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:227
专家分:707
注 册:2008-9-22
得分:0 
这个版块就应该多些楼主这种问题,可以涵盖C++对象模型的探索问题,而不是一些作业算法题和脑残求码贴。支持你。
objmodel.zip (4.57 KB)
附上一个代码,你参考学习下吧。

[ 本帖最后由 blueskiner 于 2013-11-25 10:31 编辑 ]
2013-11-25 10:04
左手拉一只猫
Rank: 4
来 自:杭州
等 级:业余侠客
帖 子:70
专家分:250
注 册:2013-10-27
得分:0 
以下是引用blueskiner在2013-11-25 10:04:48的发言:

这个版块就应该多些楼主这种问题,可以涵盖C++对象模型的探索问题,而不是一些作业算法题和脑残求码贴。支持你。附上一个代码,你参考学习下吧。

支持!!!

我能帮你的只能到这里了。。。
2013-11-25 12:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-424139-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.260017 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved