【发布时间】:2010-12-31 20:26:59
【问题描述】:
类数据是这样的:
struct Base_data
{
public:
Base_data(){
protocolname = "Base";
}
string protocolname;
};
class HttpData : public Base_data
{
public:
HttpData(){
protocolname = "Http";
}
};
班教授:
类 Base_Professor
{
民众:
无效进程(Base_data &data)
{
std::map::const_iterator it = ListProfessor.find(data.protocolname);
if(it == ListProfessor.end())
cout second->Do(数据);
}
虚空 Do(Base_data &data){}
虚拟 std::string GetProfessorname(){
返回“基地”;
}
~Base_Professor(){
std::map::const_iterator 它;
for(it = ListProfessor.begin(); 它 != ListProfessor.end(); ++it)
删除它->第二个;
}
bool Register(Base_Professor *Professor){
std::map::const_iterator it = ListProfessor.find(Professor->GetProfessorname());
如果(它!= ListProfessor.end())
返回假;
ListProfessor.insert(std::make_pair(Professor->GetProfessorname(), Professor));
}
私人的:
std::map 列表教授;
};
HttpProfessor 类:公共 Base_Professor
{
民众:
std::string GetProfessorname(){
返回“http”;
}
无效做(Base_data &data){
std::cout
我可以通过继承 Base_Professor 添加新协议并注册新类,但我不知道如何在 lua 中做到这一点。你有什么理想的方法吗?
【问题讨论】: