您不必声明指针指向的对象类型.这就是指向void(void *
)类型的指针 - 指向未知类型的对象的指针.
当然,如果你不知道对象的类型,那么你就不能用它做任何有用的事情,这就是为什么C++不会让你用指针到void做很多事情,除非在指针到void的地方使用它是预期的,或将其转换为另一种指针类型.
您还可以指向不完整的类型:
class Something;
Something * somethingPtr = nullptr;
Run Code Online (Sandbox Code Playgroud)
现在我们有一个指向类型对象的指针Something
,但我们对该类型一无所知,因此我们无法对目标对象执行任何操作:
// error: invalid use of incomplete type ‘class Something’
somethingPtr->foo();
Run Code Online (Sandbox Code Playgroud)