C++命令行游戏引擎

# include & ltiostream & gt

# 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

}