注册 登录
编程论坛 C++教室

各位大师,帮我看看错在哪

张堪绘 发布于 2013-05-02 23:43, 538 次点击
#include<iostream>
using namespace std;
class person{
public:
    person(int number1,string name1)
    {number=number1;
    name=name1;}
    void print()
    {cout<<"编号:"<<number<<endl;
    cout<<"姓名:"<<name<<endl;
    }
protected:
    long number;
    string name;
};
class student:virtual public person{
public:
    student(int number1,string name1,int class_number1,float score1):person(number1,name1)
    {class_number=class_number1;
    score=score1;}
    void print()
    {person::print()
    cout<<"班号:"<<class_number<<endl;
    cout<<"成绩:"<<score<<endl;}
protected:
    int class_number;
    float score;};
    class teacher:virtual public person{
    public:
        teacher(int number1,string name1,srting work1,string dept1):person(number1,name1)
        {work=work1;
        dept=dept1;}
        void print()
        {person::print();
        cout<<"职称:"<<work<<endl;
        cout<<"部门:"<<dept<<enddl;}
    protected:
        string work;
        string dept;};
        int main()
        {student stud1(12115021058,"张三",12,89);
        cout<<"学生:"<<endl;
stud1.print();
teacher stud2(12115021059,"李四","老师","英语系");
cout<<"老师:"<<endl;
              stud2.print();
return 0;}
5 回复
#2
宋立鹏2013-05-03 08:55
首先没有包含string类的头文件,应该加上 include<string>;
其次class student:virtual public person{
public:
    student(int number1,string name1,int class_number1,float score1):person(number1,name1)
    {class_number=class_number1;
    score=score1;}
    void print()
    {person::print()
    cout<<"班号:"<<class_number<<endl;
    cout<<"成绩:"<<score<<endl;}
红色处少了分号;
最后的问题
teacher stud2(12115021059,"李四","老师","英语系");
后面的括号和分号你写成中文的啦,改成英文的就ok啦
#3
宋立鹏2013-05-03 08:56
抱歉,是#include<string>
#4
额外覆盖2013-05-03 09:51
哈哈  楼主也很粗心啊   和我一样犯低级的错误   头文件、符号的问题  有时很蛋疼啊
有次我直接在  while后加了个分号  总是到这就无限循环  纠结好久   


[ 本帖最后由 额外覆盖 于 2013-5-3 09:53 编辑 ]
#5
天使梦魔2013-05-03 10:02
你没有错,是月亮惹的祸
#6
唯一的幸福2013-05-03 12:56
楼主也很粗心啊   和我一样犯低级的错误   头文件、符号的问题
有次我直接在  while后加了个分号  总是到这就无限循环  纠结好久
1