C ++如何返回内部类

洛林

我的班级设计有一个小问题。我有两个类-应用程序和窗口。应用程序拥有一个窗口。现在,我有两种方法来编写它。

1)将Window添加到Application的私有范围中在这种情况下,我必须添加方法getWindow(),该方法会将Window对象返回给用户以允许对其进行操作(调用其方法)。

Application app;
app.getWindow().setTitle( "..." );

2)将Window添加到Application的公共范围中,然后像这样访问Window:

Application app;
app.window.setTitle( "..." );

如果是简单的语言类型(bool,int,...),我会选择第一种方法而无需询问...

这两种方式中的哪一种更好使用?谢谢你的建议。

我认为第一个是唯一的好方法。

请注意,尽管返回一个Window引用而不是一个Window对象。如果返回对象,则将构造该对象的副本,并且您将不再操纵原始对象。

我只喜欢第一种方法的原因(通常是为什么在教科书中会发现“不要从extern访问数据成员”):在返回值(在这种情况下为对象引用)之前,您可以根据需要对其进行操作。例如,您需要实现自己的窗口类。如果使用getter函数返回它,您仍然可以将其强制转换为原始的窗口类,因此其余代码(仅需要setTitle等)将保持不变。

==>只有应用程序类需要知道其数据成员的组织方式,其他人则不需要。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章