问题是这样的
namespace color
{
   class a
   {
       const int black =1;
   }
   class b
   {
       const int black =1;
   }   ....
}
像black这样的常量,在一个命名空间的多个类中出现,是否必须在不同的类中重复定义?
如果不是必须的,该怎么办呢?

解决方案 »

  1.   

    namespace color 

       class values
       {
           const int black =1; 
           ...... 
       }
       class a 
       { 
           values.black ... 
       } 
       class b 
       { 
           values.black ... 
       }    .... 
      

  2.   

    namespace color 

       class values
       {
           public enum colors
           {
                black = 1; 
                ...... 
           }
       }
       class a 
       { 
           void foo()
           {
               values.colors.black ... 
           } 
       } 
       class b 
       { 
           void bar()
           {
               values.colors.black ... 
           } 
       }    .... 
      

  3.   

    首先得确认类A和类B的关系,并且要考虑a.blank和b.blank的值是否在不同类中担当不同的角色,考虑一下1楼的建议,继承
      

  4.   

    或者把它定义到一个公共类里面,定义成公共常量public static class comm
    {
    public const int black=1;
    }
    public a
    {
    int a=comm.black;
    }
      

  5.   

    最后这么解决的
    namespace color 

       class s
       {
          public const int black =1;
       }
       class a : s
       { 
            
       }  
       class b : s
       { 
       }    ....