doc*_*doc 7 c++ oop getter accessor mutators
有时我需要暴露一些班级成员.例如,在以下示例中class Mechanic可能需要直接访问Engine组件.我已多次读过所有字段都应该由mutator(accessor)方法访问,原因有几个.但是在提供非const引用getter时是否有任何优势:
class Car
{
public:
Engine & engine()
{
return m_engine;
}
//as a consequence you will also need to provide const version
const Engine & engine() const
{
return m_engine;
}
private:
Engine m_engine;
}
Run Code Online (Sandbox Code Playgroud)
简单地将引擎组件公开:
class Car
{
public:
Engine engine;
}
Run Code Online (Sandbox Code Playgroud)
您也可以替换public使用protected,如果你不喜欢这样的例子.在现实生活中,当涉及到System.in或者,你在Java中有类似的东西System.out.看起来,要完全符合某些人的说法,你需要执行类似的调用System.getInstance().getOut().println("hello world").在这种情况下,除了很多官僚代码外,我没有看到任何好处.