2012-04-30 2 views
-1

Я хотел бы использовать указатель массива в качестве экземпляра класса. , например:Как использовать массив указателей как экземпляр класса

char *pArray[100]; 
pArray[1] = &class_name; //pArray[1] has the address of "class_name" class. 


cout<<"Name Property: %s Age Property: %d"<<pArray[1].name<<pArray[1].age); 
+0

** Что ** вы хотите сделать? Сохранять указатели на объекты в массиве указателей 'char'? Использовать память из массива в качестве хранилища для объекта? Или что? –

ответ

2

Вам нужно бросить элемент в class_name указатель:

(class_name*)pArray[1] 

и доступа пользователей с оператором ->.

((class_name*)pArray[1])->name 

Но FYI, это кажется неправильным. Почему бы просто не иметь массив class_name*, или, еще лучше, std::vector<class_name*>?

+1

Мне кажется очень неправильным. Типы указателей поворота вокруг, хотя это возможно, очень редко полезны. Все остальное время он имеет тенденцию вызывать как ужасную путаницу, так и потенциально очень трудно найти ошибки. –

+0

В вопросе есть массив строк, так как ваш ответ связан? Весь вопрос очень запутан и должен быть исправлен. – mloskot

+0

@mloskot кажется довольно понятным для меня. У него есть массив указателей 'class_name', которые он хранит в массиве указателей' char'. –

Смежные вопросы