【发布时间】:2018-11-17 13:00:09
【问题描述】:
我刚刚意识到我不必要地让一个类成员静态。我想知道这是否有意义,或者它们之间有什么区别。所以我有:
struct Log
{
int a;
std::string text;
};
struct GUI
{
GUI() = delete;
static void doSomething() {}
static inline int a;
static inline Foo fooObj;
};
或
struct GUI2
{
GUI2() = delete;
static void doSomething() {}
int a;
Foo fooObj;
};
所以你可以看到这个 GUI 类总是会被范围操作符 GUI:: 访问而不是点成员操作符,我不会创建它的任何实例,它是完全静态的。所以两个 GUI 类中的 int 和 Foo 对象要么有“static”关键字,要么没有。在 GUI 类不会被实例化的情况下,我不相信这会有所作为。作为最佳实践,最好不要使用 static 关键字吗?另外,如果两者之间有任何区别怎么办?我只是注意到我认为这对我的情况没有影响。
【问题讨论】:
-
@Ron 我将 GUI 类中的 Foo 和 int 成员对象设为静态,当 GUI 本身是静态类时,在这种情况下是否不需要静态?有什么区别吗?
-
C++ 中没有静态类这样的东西。
-
如果你不打算创建它的任何实例,为什么要让它成为一个类呢?只需使用命名空间。
-
@CodingLumis 它给了我访问说明符,而且......我不记得还有什么,我折腾了是使用命名空间还是类,我决定使用类。