【问题标题】:how to naming class, struct, enum and union [closed]如何命名类、结构、枚举和联合
【发布时间】:2013-04-07 03:12:46
【问题描述】:

两个例子:

我要定义时间:

class Time
{
    month(){...} 

    year(){...}

    private:

    time_t a;
}

struct Time    
{int year; int month;}

但是 c++ 不能允许定义相同的名称。那么如何定义struct名称呢?添加前缀或后缀,例如STimeTimeStruct

同样,我要定义颜色:

class Color
{
  int color;

  red(){...}
}

enum Color
{
    e_red,

    e_green
}

还有名称冲突。那么如何定义enum 名称呢?添加前缀或后缀,例如EColorColorEnum

使用union 也存在名称冲突。那么如何避免structenumunion名称与类名冲突呢?加前缀还是后缀?

【问题讨论】:

  • 无法理解你的问题...你能解释一下你想做什么吗?
  • 同一名称不应该同时适用于简单的数据持有者和复杂的类。无论如何,C++ 有一个叫做 namespace 的东西。
  • 如果您想将两个不同的事物命名为同一个名称,那么您的程序的概念化是不正确的。
  • 好的,我再问一个问题来代替它。

标签: c++ class struct enums naming


【解决方案1】:

您可以使用namespace 来限制范围

namespace MyClass
{
   class Time { ... };
}

namespace MyStruct
{
  struct Time { ... };
}

...
MyClass::Time c;
MyStruct::Time s;
...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多