如何定义操作静态数据成员的C++方法?
我有一个只包含静态数据成员的C++类。 我注意到编译器是好的,如果我将访问方法定义为const,如静态或“常规” - 所有似乎都工作。如何定义操作静态数据成员的C++方法?
我的问题是在这种情况下正确/更好的做法是什么?
谢谢!
静态数据成员的静态访问器。
如果所有方法都是静态的,那么创建类的实例就没有意义了。所以我建议让所有的方法都是静态的,这样你就可以在不创建类的对象的情况下使用这些方法。基本上,您将能够使用命名空间语法来调用这些方法。
我有一个只包含静态数据成员的C++类。
然后,这可能不应该是一个类,但要么在名称空间或单身的免费功能。
我仍然觉得它更容易封装在一个指定的类,因为它有一个特定的角色,我有很多操作这些静态数据成员(三个不同的地图)的方法。 – Mym 2009-11-11 06:59:27
+1 concur!你只需要一个头文件来声明一些函数。这些函数会改变你想要的任何静态存储变量。无需在课堂上申报,并使其他翻译单位依赖于此类别声明。 – sellibitze 2009-11-11 08:09:36
因此,翻译单元应该是您的“抽象”(不是类),并且头文件将是不包含任何实现细节的接口。 – sellibitze 2009-11-11 08:11:35
我的编译器似乎不允许有静态和常量的方法。我相信,一旦一个方法被定义为static,那么通过设计它就不能修改类的非静态成员 - 因为这个方法不属于该类的特定实例。 – Mym 2009-11-11 06:55:45
你说得对,我的错。 – 2009-11-11 07:01:51
谢谢。这对我有意义。 – Mym 2009-11-11 07:03:53