来自成员Calss的Acess Parent-Cass成员

时间:2016-02-11 11:11:27

标签: c++ class parent member

为了让我的问题更好理解,这里有一些代码:

getParentUnit()

现在我希望我的string myClass::getParentUnit(){ retrun parent.getUnit(); } 做类似

的事情
myClass

我知道我可以修改this以在构造函数中使用parent class a{ <...> b B; <...> } class b{ <...> c C; } class c{ <...> d D; <...> } 指针并将其保存以供日后使用,但我在彼此“内部”有几个类,如:< / p>

d

并在课程a中我需要访问班级.post(function(req,res){ models.Item.create({ title : req.body.title, UserId : req.body.UserId }).then(function(item){ res.json({ "Message" : "Created item.", "Item" : item }); }); }); 中的内容。

因此,如果有更好的方法,我不想改变所有内容以获得向后引用。

问候 NIoSaT

1 个答案:

答案 0 :(得分:1)

这是一个常见问题:有一个应用程序(对应于类children的对象),然后较低抽象级别的对象需要访问应用程序上下文(adjustPan的成员)

人们常常应用全局变量的简单但高度成问题的解决方案,使整个应用程序代码可以访问a。请注意:这意味着a不可测试,因为您必须设置整个应用程序才能使a正常运行。如果依赖项不影响d的行为,但只添加边缘副作用(如记录器),那么它可能是可以接受的,因为您仍然可以在没有记录器的情况下测试d的行为。 / p>

执行此操作的简洁方法是让每个对象在构造函数或setter函数中显式获取其依赖项。这需要更多的工作,但它创建了可维护的代码,因为每个类的API明确说明了依赖关系。此外,现在每个班级都可以独立测试。

d

我建议您观看https://www.youtube.com/watch?v=RlfLCWKxHJ0,其解释非常好。