程序背景:用户只能输入两个词的string
- 一个动词和一个名词。我将此字符串标记为vector
,并将tokens[0]
与允许的动词vector
进行比较,将tokens[1]
与允许的名词的vector
进行比较。通过变量使用对象和对象功能
现在,我试图找到一种方法,只允许某些动词在某些名词上执行。例如,编写“take book”会给出一个消息(或其他),表示允许,但是写入“take door”不会。到目前为止,我为每个可能的动词创建了一个class
对象,其值为bool
(例如,在class Object
内,我可以创建Object book
,其中m_take = true
或false
为Object door
)。
但是,我无法将这些对象与用户输入相关联。例如,我希望能够做到这样的事情:
1)用户输入“动词名词”,它进入标记向量tokens[0]
和tokens[1]
。
2)程序检查输入是否包含可接受的单词(单独)。
3)考虑getstat()
是中检索一个物体上的可能的动作是可行的bool值的功能,该程序检索tokens[1].getstat(tokens[0])
,如果true
,执行tokens[0].tokens[1]()
(例如book.take()
)。这样,我的main()
中只能有一个if
周期,可供所有法律动词和名词使用,而无需制定无限的if
,else if
等列表,手动考虑每个选项。
对不起,如果这一切混淆。我知道使用变量作为对象名称是不可能的,但我相信有一种更好的方法可以做到这一点,而不是在考虑动词和名词的每个混合和匹配的周期内进行循环。我现在正在尝试3个,但是一旦我得到这个工作,我打算扩展它,如果我必须多次硬编码每个可能的动词和名词,那么跟踪每个变化将是一场噩梦源代码。 (另外,抱歉没有发布整个源代码 - 这是一个非常长的文件!) 感谢任何帮助/提示正确的方向!
您可能要在成员指针** **的概念读了(也许还对虚拟函数)。 –