读书人

学C++遇到的小疑点

发布时间: 2012-02-13 17:20:26 作者: rapoo

学C++遇到的小问题

C/C++ code
#include <iostream>#include <string.h>class Person{private:    char m_pName[12];    char m_pID[12];    bool m_bMan;public:    void SetData(char *pName, char *pID, bool bMan)    {        int n = strlen(pName);        strncpy(m_pName, pName, n);            m_pName[n] = '\0';        n = strlen(pID);        strncpy(m_pID, pID, n);        m_pID[n] = '\0';        m_bMan = bMan;    }    void OutPut()    {        std::cout<<"姓名: "<<m_pName<<std::endl;        std::cout<<"编号: "<<m_pID<<std::endl;        char *str = m_bMan?"男":"女";        std::cout<<"性别: "<<str<<std::endl;    }};class Student: private Person    // 私有继承{private:    double m_dbScore[3];public:    void SetStudentData(char *pName, char *pID, bool bMan)    {        SetData(pName, pID, bMan);    // 此时基类中的成员函数是派生类的保护成员函数,只有派生类的成员函数可以调用    }    void InputScore(double score1, double score2, double score3)    {        m_dbScore[0] = score1;        m_dbScore[1] = score2;        m_dbScore[2] = score3;    }    void Print()    {        OutPut();        for(int i=0; i<3; i++)        {            std::cout<<"成绩"<<i+1<<":"<<m_dbScore[i]<<std::endl;        }    }};class Teacher: private Person{private:    int m_nYear;public:    void SetTeacherData(char *pName, char *pID, bool bMan)    {        SetData(pName, pID, bMan);    // 此时基类中的成员函数是派生类的保护成员函数,只有派生类的成员函数可以调用    }    void InputYear(int nYear)    {        m_nYear = nYear;    }    void Print()    {        OutPut();        std::cout<<"教龄: "<<m_nYear<<" 年"<<std::endl;    }};int main(){    Student cStu;    cStu.SetStudentData("LiMing", "4654651", 1);    cStu.InputScore(98, 97, 96);    cStu.Print();    std::cout<<std::endl;    Teacher cTea;    cTea.SetTeacherData("ChaoLi", "543687", 0);    cTea.Print();    cTea.InputYear(2);    return 0;}

姓名: LiMing
编号: 4654651
性别: 男
成绩1:98
成绩2:97
成绩3:96

姓名: ChaoLi
编号: 543687
性别: 女
教龄: -858993460 年这里年份为什么没有显示?

[解决办法]
C/C++ code
    cTea.Print();//你先Print了后设置了,肯定是没有显示啊    cTea.InputYear(2);
[解决办法]
建议你在初始化的时候设置m_nYear=0

读书人网 >C++

热点推荐