| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 662 人关注过本帖
标题:这个继承怎么写?
只看楼主 加入收藏
maiiho
Rank: 1
等 级:新手上路
帖 子:94
专家分:7
注 册:2008-7-17
结帖率:50%
收藏
 问题点数:0 回复次数:3 
这个继承怎么写?
红色部分
#include <iostream.h>
#include <string.h>
char level(float a);
class student
{
private:
    static int count;                  
    static float allgrade;               
    char *no;
    char *name;
    float grade;
public:
    student(){}
    student(char *no1,char *name1,float grade1)     
    {
        no=new char[strlen(no1)+1];
        strcpy(no,no1);
        name=new char[strlen(name1)+1];
        strcpy(name,name1);
        grade=grade1;
        allgrade+=grade;
        count++;
    }
    ~student()
    {
        delete []name;
        delete []no;
    }
    void setxx(char *no1,char *name1,float grade1)
    {
        no=new char[strlen(no1)+1];
        strcpy(no,no1);
        name=new char[strlen(name1)+1];
        strcpy(name,name1);
        grade=grade1;
        allgrade+=grade;
        count++;
    }
    void showxx()
    {
        cout<<"\n编号="<<no<<"\n姓名="<<name<<"\n成绩="<<grade<<endl;
    }
    void allxx()
    {
        cout<<"\n\n团队人数="<<count<<"\n总成绩="<<allgrade<<"\n评定级别="<<level(allgrade)<<endl;
    }
    char level(float a)
    {
        char temp;
        if(a>0&&a<30)
        temp='D';
        if(a>30&&a<60)
        temp='C';
        if(a>60&&a<90)
        temp='B';
        if(a>90&&a<=a)
        temp='A';
        return temp;
}
};
class studentA:public student
{
private:
    float ave;
public:
    studentA(float avegrade):student(char *no,char *name,float grade)     
    {
        avegrade=allgrade/count;
        ave=avegrade;
    }
    void Aallshow()
    {
        student::allxx();
        cout<<"\n平均成绩="<<ave;
    }
};

int student::count=0;
float student::allgrade=0.0;
int main()
{
    student p1,p2("95001","Ishimura Maiiho",89);
    p1.setxx("95002","Shimizu Saki",83);
    p2.showxx();
    p1.showxx();
    p2.allxx();
    studentA p3;
    p3.Aallxx();
    return 0;
}
搜索更多相关主题的帖子: 继承 
2008-10-21 14:51
choco1024
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:183
专家分:140
注 册:2008-8-31
收藏
得分:0 
class studentA:public student
{
private:
    float ave;
public:
    studentA(char *NO,char *Name,float Grade,float avegrade):student(*no, *name,grade)     
    {
        ave=avegrade;
    }//派生类可构造函数应该这样写
};
但是allgreade是基类的私有静态成员,派生类无权访问啊,还是另寻别的办法吧。
2008-10-21 22:28
xiaxiang1986
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-3-16
收藏
得分:0 
2# very good!
你可以把   static int count;                  
          static float allgrade;
放到public 里去!

呵呵!
2008-10-22 10:53
beyondlwm
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2006-7-19
收藏
得分:0 
静态变量放到public里,使用的时候直接用 类名::变量名 就可以了。
2008-10-22 15:20
快速回复:这个继承怎么写?
数据加载中...
 
   



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

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