gpt4 book ai didi

c++ - 我可以禁止在对象实例上调用静态方法吗?

转载 作者:IT老高 更新时间:2023-10-28 22:30:18 25 4
gpt4 key购买 nike

我有很多转换功能的类(class):

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,或者至少让他们做一些不同的事情。

有没有办法做到这一点?

最佳答案

他们真的需要成为类(class)成员吗?防止这种情况的明显方法是使它们成为自由函数。

关于c++ - 我可以禁止在对象实例上调用静态方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2207320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com