我是C ++的新手,请告诉我是否可以在void指针中存储类地址?
答案 0 :(得分:3)
没有。 C ++类是类型,而不是对象。他们在记忆中没有任何位置。
(类中的函数,可能还有类的vtable,确实存在于内存中,但是没有一个位置被视为表示类。)
答案 1 :(得分:2)
是的,很简单。
class some_class {
public:
int Member;
};
void Function() {
some_class SomeObject;
void* voidPointer = &SomeObject;
}
为了使用该对象的成员,您需要将指针转换回正确的类型,并且需要强制转换。
voidPointer->Member = 10; // This line is an error
some_class* SomePointer = static_cast<some_class*>(voidPointer);
SomePointer->Member = 10;