C++命令行游戏引擎
# include & lt字符串& gt
使用命名空间std
类对象{
公共:
虚拟~Object(){}
对象(字符串名称,字符串描述){
oName = name
oDescript = description
}
虚拟字符串examine()= 0;
虚拟字符串open()= 0;
虚拟字符串使用with(Object & amp;object)= 0;
//名称等的getters和setters。
虚拟字符串set open(bool)= 0;
string getName(){
返回oName
}
string getDescript(){
返回oDescript
}
私人:
//私有成员等。
字符串oName
字符串oDescript
};
类密钥:公共对象{
公共:
Key(字符串名称,字符串描述):Object(名称,描述){ };
~ Key(){ };
//实现接口对象
字符串检查(){
return string("这个看起来有一百岁了");
}
string open(){
返回字符串("什么也没发生...");
}
字符串使用with(Object & amp;对象){
if(object.getName() == "door"){
返回object . set open(true);
}
}
字符串setOpen(布尔状态){
返回字符串("什么也没发生...");
}
};
类门:公共对象{
公共:
Door(字符串名称,字符串描述):Object(名称,描述){;};
~ Door(){ };
字符串检查(){
返回字符串("这是一扇门。");
}
string open(){
返回string("它被锁定了。");
}
字符串使用with(Object & amp;对象){
返回字符串("什么也没发生...");
}
字符串setOpen(布尔状态){
dOpen = state
如果(状态){
返回字符串(“门开了”);
}
}
私人:
布尔多彭;
};
void main(){
键A(“键”、“一键”);
b门(“门”、“A门”);
cout & lt& lta . getname()& lt;& ltendl
cout & lt& ltb . getname()& lt;& ltendl
cout & lt& lt“检查门”& lt& ltendl
cout & lt& ltb . examine()& lt;& ltendl
cout & lt& lt“用门的钥匙”& lt& ltendl
cout & lt& lt与(b)连用& ltendl
}