您是否正在尝试访问int
您的班级成员?如果是这样,您可以这样做:
class MyClass {
public:
int myInt;
};
void function(int*) {...};
MyClass* instance = new MyClass;
function(&instance->myInt);
您不想将MyClass 转换为 int,您只想访问MyClass 的成员。
所以这就是那条线的意思:
instance-> // follow the pointer to the actual MyClass object.
instance->myInt // access the int, "myInt"
&instance->myInt // get the address of that int
function(&instance->myInt); // call "function", passing to it the address of "myInt"
编辑:
如果您正在创建一个包装 int 的类,您可以使用自定义转换运算符来执行此操作,正如@cmbasnett 建议的那样:
class MyClass {
public:
int* operator int*() { return &my_int; }
private:
int my_int;
};
MyClass instance;
function(instance); // this line will trigger the custom cast operator.