我有一个所有方法都是静态的类,如下所示:
class A {
public:
static std::string getA() { GlobalData::alfa; }
static std::string sum(int x, int y) { ... }
static int convert() { ... }
};
我需要 A 可以是线程安全的。哪个是更好的设计?我需要像这样在非静态方法中转换所有方法吗?
class B {
public:
std::string getA() { g.alfa; }
std::string sum(int x, int y) { ... }
int convert() { ... }
private:
GlobalData g;
};
考虑 GlobalData 是一个简单的 POD,如下所示:
struct GlobalData
{
static std::string foo;
static int bar;
...
}