У меня есть класс с множеством функций преобразования:
class Something {
public:
string toXml();
string toJson();
...
static Something fromXml(string); // factory
static Something fromJson(string); // factory
...
};
Поскольку статические функции можно вызвать в экземпляре, легко написать такой код:
Something sss;
... initializing sss ...
string xml1 = sss.toXml();
sss.fromXml(xml1); // does nothing
string xml2 = sss.toXml();
assert(xml1 == xml2); // always true
Поэтому я хочу запретить вызов fromXXX на объекты или по крайней мере, сделать их чем-то другим.
Есть ли способ сделать это?