鉴于我自己的结构类型X
,是否可以定义隐式强制转换运算符,该运算符允许将X*
隐式转换为其他类型,例如int*
。虽然在引用之间进行转换很容易,但我找不到如何为指针执行此操作。像这样:
struct X {
int theContent;
operator int&(){ return theContent; }
operator const int&() const { return theContent; }
}
int main(){
X x;
X* x2=&x;
// this should work, but it doesn't
int* i=x2;
}
答案 0 :(得分:0)
您的X是标准布局类型。您可以简单地int* i=(int*)x2;
或(reinterpret_cast)。
-
如果必须定义转换,那么可能是
operator int*() { return &theContent; }
所以你可以int* i=x;
。