Я пытаюсь создать класс, содержащий std::vector
из void*
. Мне сказали, что void*
является эквивалентом C++, равным Object
в Java. Поскольку это порт C++ для программы, написанной на Java, она должна работать теоретически.Использование void * как эквивалент C++ объекта Java
Java:
ArrayList<Object> list;
C++:
vector<void*> list;
Это не будет компилироваться, что дает ошибку: "ссылка": незаконное использование типа "недействительным".
Действительно ли действительно эквивалент C++ Java Object
? Я использую это неправильно?
void * в C++ определенно не эквивалентен Object в java. Это тип данных, который содержит общий указатель на ячейку памяти. – JJF
Декларация вектора сама по себе должна компилироваться, но вы не указали полный код. Вы, вероятно, делаете то, что не должны с вектором. – aslg
Хороший код редко требует использования 'void *'. Существует почти всегда лучший способ его разработки. Используйте вектор интеллектуальных указателей базового класса. –