哪些占位符名称(foobars)用于类型,函数和变量?

时间:2013-03-18 18:54:55

标签: c++ conventions

为了在c ++中进行概念演示,我需要对类型,函数,变量使用一些占位符命名方案,例如: Foobar。有几个不同的实体来命名和区分最终只有foo / bar同时用于类,函数,成员变量在视觉上没有区别。这些实体是否有一些有用的占位符命名方案?

enum Enum1 { ... }

struct Struct1 { ... }

class Class1
{
public:
    void function1();
    void function2();
    ...
private:
    int variable1;
    int variable2;
    ...
}

对于类型,函数和变量,仅使用foo / bar,区别就不那么明显了

enum Foo { ... }

struct Bar { ... }

class Foo
{
public:
    void foo();
    void bar();
    void baz();
private:
    int foo_;
    int bar_;
}

2 个答案:

答案 0 :(得分:2)

动物经常用于说明面向对象的编程。他们有良好的同质和异质行为(eatbark),关系树(Dalmatian是 - DogDog有一个{{1等等。

当然,同样的问题可以通过非OOP技术解决......然后相同的属性有用地说明了通过虚函数,模板特化,适配器,Tail等动态多态性之间的关系。

答案 1 :(得分:1)

据我了解,这些示例可以很好地用于说明表达式,语法或架构模式,但不能用于算法或业务逻辑部分。每当你试图说明最后一个时,你应该考虑使用有意义的名称来解释它们在算法中的作用。

至于我,我通常会使用foo / bar / moo / boo等。这样做的工作非常好就示例而言相当短

如果示例不够短且案例强调类型(如函数或数组)似乎有助于提高可读性,functionA / functionB可用作另一种选择 - 在恕我直言中阅读和操纵这些名称似乎更容易(而不是数字)。数字会分散注意力。

另一种方式(在讨论SQL查询时对我来说特别好,但在某些C ++情况下也很有用)是使用原始的现实生活实体,如class Personclass Employee作为子类。

如果你试图向非专业人士展示OOP示例,在这种情况下,Foo / Bar / Function1绝对不是一个选项:只有最聪明的学生才能得到这个想法。我的第一个OOP示例是lightbulb turn onturn off方法,isOn属性,colourpower属性。它可以使用fluorescentincandescent lamp子类进行扩展,并封装在desk lamp类中。如果您进一步使用OOP并引入接口,它还可以实现ac-powered和/或dc-powered接口。

使用Foo / Bar等只有在与经验相同或更高的人沟通时才有意义 - 那些已经完全理解语言的人(例如当你提出类似的问题时“我应该使用{{1} }或foo + bar?“亲切的。”