这段程序报这个错误error C2143: syntax error : missing ';' before '}'修改过,分号了,还是报这个错

#include<iostream>
using std::cout;
using std::cin;
using std::endl;
class Student
{
private: int y;
public:
Student(){y=1;}
void display_s(){cout<<"Student类中:"<<y<<endl;}
};
class Teacher
{
private: int x;
Teacher(){x=2;}
void display_t(){cout<<"Teacher类中:"<<x<<endl;}
};
class Teacher_asst:public Teacher,public Student
{
private: int z;
public:
Teach_asst():Teacher(),Student()
{
z=0;
}
};
void main()
{
Teach_asst() * tt= new Teach_asst();
tt->display_s();
tt->display_t();
}

#include<iostream>
using std::cout;
using std::cin;
using std::endl;
class Student
{
private: int y;
public:
Student(){y=1;}
void display_s(){cout<<"Student类中:"<<y<<endl;}
};
class Teacher
{
public: int x;
Teacher(){x=2;}
void display_t(){cout<<"Teacher类中:"<<x<<endl;}
};
class Teacher_asst:public Teacher,public Student
{
private: int z;
public:
Teacher_asst():Teacher(),Student() //原来你的构造函数写成了Teach_asst,不对
{
z=0;
}
};
void main()
{
Teacher_asst * tt= new Teacher_asst();
tt->display_s();
tt->display_t(); //子类不能访问父类的private:成员,所以上边改成了public:
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-21
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
class Student
{
private: int y;
public:
Student(){y=1;}
void display_s(){cout<<"Student类中:"<<y<<endl;}
};
class Teacher
{
private: int x;
public: //这里你缺少了public关键字
Teacher(){x=2;}
void display_t(){cout<<"Teacher类中:"<<x<<endl;}
};
class Teacher_asst:public Teacher,public Student
{
private: int z;
public:
Teacher_asst():Teacher(),Student() //构造函数应该跟类名Teacher_asst一致
{
z=0;
}
};
void main()
{
Teacher_asst * tt= new Teacher_asst(); //这里用类Teacher_asst改写声明
tt->display_s();
tt->display_t();
}
相似回答
大家正在搜