C++ 重载运算符=使用非类类型
对不起,这个可能很愚蠢的问题。我想覆盖类变量的默认mutator/accesor(使用C++ 重载运算符=使用非类类型,c++,C++,对不起,这个可能很愚蠢的问题。我想覆盖类变量的默认mutator/accesor(使用=操作符,而不是通常的set/get命名法)。我想获得一些可能性方面的指导。我找到的与我的问题最接近的资源是,它提供了我所需的50% 让我们假设我有这个类(这段代码不是我的实际需要,而是我所要求的一个更简单的例子) 给定IDCard my_id,我可以这样做:my_id=10,但我也想这样做:int I=my_id 为此,我是否能够重载IDCard类中的某些内容以在=操作符上返回原语,或者这仅适用于设置类对象
=
操作符,而不是通常的set/get
命名法)。我想获得一些可能性方面的指导。我找到的与我的问题最接近的资源是,它提供了我所需的50%
让我们假设我有这个类(这段代码不是我的实际需要,而是我所要求的一个更简单的例子)
给定IDCard my_id
,我可以这样做:my_id
=10,但我也想这样做:int I=my_id
为此,我是否能够重载IDCard类中的某些内容以在=
操作符上返回原语,或者这仅适用于设置类对象
我看不到很多有用的例子,因为它会使代码变得更模糊,但是我正在转换一些已经覆盖了它们的调制器和访问器的Python代码,所以我想知道C++是否有类似的能力。
class IDCard {
int id;
public:
operator int() const { return id; }
};
但是,我强烈建议不要这样做,并建议使用普通的访问器方法:
class IDCard {
private:
int id_;
public:
int id() const { return id_; }
};
谢谢,我没有意识到你能做到这一点。我也不建议你这么做,因为阅读基本上是这么做的python代码是一件痛苦的事情(尽管更复杂的调用发生在后台)。
class IDCard {
private:
int id_;
public:
int id() const { return id_; }
};