使用void*作为Java Object的C++等价物

Add*_*ddi 4 c++ java object void equivalent

我正在尝试创建一个包含a std::vector的类void*.有人告诉我,这void*是与Java相当的C++ Object.由于这是用Java编写的程序的C++端口,因此它应该在理论上起作用.

Java的:

ArrayList<Object> list;
Run Code Online (Sandbox Code Playgroud)

C++:

vector<void*> list;
Run Code Online (Sandbox Code Playgroud)

这将无法编译,给出错误:"'reference':非法使用'void'类型".

void*真正的C++相当于Java的的Object?我用错了吗?

Dan*_*rul 6

Java Object是一个基本的基类,它为所有Java类提供了一些公共属性.

在C++中没有这样的东西.如果要设计多态层次结构,可以设计自己的基类MyBaseClass(抽象与否),然后设计派生类.

因此,创建vector<void*>容器在技​​术上是可行的,但它没有意义.对于正确的软件设计,您想要的是设计基类MyBaseClass,以便您能够创建vector<MyBaseClass*>容器.