目前我对类名和方法名使用相同的约定.他们有一个没有前缀的主要大写字母.我不使用"Get"前缀来获取属性.但是,我在以下代码中遇到名称冲突问题
class Material
{};
class Background
{
public:
Material* Material() const {return m_material;} // Name conflict
void SetMaterial(Material* material) {m_material = material;}
private:
Material* m_material;
};
Run Code Online (Sandbox Code Playgroud)
什么是解决问题的最简单方法,但保持或最小化我的约定?非常感谢!
什么是解决问题的最简单方法,但保持或最小化我的约定?
在最简单的方法可能是稍微修改公约,如用小写字母开头的方法名.
顺便说一下,我喜欢你在accessor方法中没有使用"get"这个词.本着同样的精神,你可以在mutator方法中删除"set"这个词(这里SetMaterial()).签名足以区分访问者和增变者.
如果你喜欢他们,你会到达:
class Material
{};
class Background
{
public:
Material* material() const {return m_material;}
void material(Material* material) {m_material = material;}
private:
Material* m_material;
};
Run Code Online (Sandbox Code Playgroud)