0
我有整型一个简单的包装类,像这样定义的:使用包装类作为它包装类型的指针?
class Integer {
public:
Integer() {
}
Integer(const int& value) {
this->value = value;
}
int toInt() const {
return value;
}
operator int() const {
return toInt();
}
private:
int value = 0;
};
我想什么做的,就是通过上面它有这样的签名功能类: doSomething(int* value)
如果我用正常的INT,我可以简单地这样做:
int value = 5;
doSomething(&value);
然而,使用包装类的时候,我不能,因为它会用一个指针类而不是实际的基础的值。 我知道地址运算符operator&
,我可以用它返回一个指向值的指针,但是如果需要的话,它会阻止我得到指向类的指针。
所以理想情况下,会有一种方法可以让我使用&myclass
来获取指向类或基础值的指针,具体取决于所需的内容。
有没有这样的方式?
你为什么要实现这样的类?这是[xy问题](http://xyproblem.info/)? – Xiobiq
你可以重载'&',但是为了得到这个类的地址,你将不得不使用'std :: addressof'。也就是说,你正在做的是反对一个好的设计。 – Arunmu
@Polikdir我已经实现了这个类,以便我可以在跨平台的内存中实施一个常量整数大小。 – Qub1