读书人

关于类继承的一个有关问题

发布时间: 2012-03-19 22:03:04 作者: rapoo

关于类继承的一个问题
在vs2005下编译,在一个地方出了8个错误,请问是语法不对吗?错误已标出
#include "stdafx.h "
#include "iostream "
#include "string "
using namespace std;
class S{
public:
virtual void write(){cout < < "S::write " < <endl;}

};
class R:public virtual S{
public:
void write(){cout < < "R::write " < <endl;}
}
class TS:public R{ //***********错误
public:
void write(){cout < < "TS::write " < <endl;}
};
class RS:public R{
public:
void write(){cout < < "RS::write " < <endl;}
};
class Radio:public TS,public RS{
public:
void write(){
cout < < "Radio::write " < <endl;
}
};
void mytest(Radio* p) {
S* s1=dynamic_cast <RS*> (p);
s1-> write();
}
int main(int argc, _TCHAR* argv[])
{ Radio rr;
mytest(&rr);
return 0;
}
error C2236: 意外的“class”“TS”。是否忘记了“;”?
error C2143: 语法错误 : 缺少“;”(在“:”的前面)
error C2059: 语法错误 : “:”
error C2059: 语法错误 : “public”
error C2143: 语法错误 : 缺少“;”(在“{”的前面)
error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
error C2504: “TS”: 未定义基类

[解决办法]
class R:public virtual S{
public:
void write(){cout < < "R::write " < <endl;}
} ;
//少了分。

仔啊 :)

读书人网 >C++

热点推荐