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