我们如何实现一个c ++类,以便它允许我们在运行时添加数据成员。这个问题在接受采访时被问到了。
答案 0 :(得分:6)
我发现这是一个非常有趣的面试问题。如果我问它,我希望这能成为一个来回的对话的开始。受访者必须知道你不能动态添加成员,但我希望能解决实际问题的问题(你想解决什么?为什么你需要添加成员?)以及解决这些问题的建议解决方案。
请注意,有两种方式可以查看面试问题,寻找事实并寻找解决问题的能力。这是一个可以行使两个问题的问题(然后再次由面试官来引导谈话,即如果这个人只是回答这是不可能的,那么面试官可以继续作为但我需要能够...... )
答案 1 :(得分:5)
你不能用C ++做到这一点,你可以做的语言不多。你可以用地图等进行某种模拟,但这不是一回事。
我希望你刚回答否。
答案 2 :(得分:0)
显然你不能在运行时改变类vtable - 这很愚蠢,但你可以使用一个允许你添加条目的成员变量,这里的stl map是个不错的选择。
作为地图商店名称 - 值对,您可以使用它来存储包含“数据成员”名称和相应数据值的数据。
我希望你问“你是什么意思?”对那个面试问题让他们解释他们在想什么。
答案 3 :(得分:0)
您无法在C ++中添加数据成员。您应该查看C ++的容器,也许是http://www.cplusplus.com/reference/stl/map/,它允许您使用名称标记数据。