我有一些有很多转换函数的类:
class Something {
public:
string toXml();
string toJson();
...
static Something fromXml(string); // factory
static Something fromJson(string); // factory
...
};
Run Code Online (Sandbox Code Playgroud)
因为可以在实例上调用静态函数,所以很容易编写如下代码:
Something sss;
... initializing sss ...
string xml1 = sss.toXml();
sss.fromXml(xml1); // does nothing
string xml2 = sss.toXml();
assert(xml1 == xml2); // always true
Run Code Online (Sandbox Code Playgroud)
所以我想禁止在对象上调用xXX,或者至少让它们做一些不同的事情.
有没有办法做到这一点?