关于类继承的一个问题
在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”: 未定义基类