void void指针可以存储C ++中类对象的地址吗?

时间:2016-01-07 07:04:21

标签: c++ pointers void

我是C ++的新手,请告诉我是否可以在void指针中存储类地址?

2 个答案:

答案 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;