저는 C++로 이와 같은 작업을하려고합니다. 그냥 원래의 형태로 다시 캐스팅cpp는 포인터 배열에 객체를 저장합니다.
void showContensofArray(void *data[])
{
//In this function have to display the values of respective objects.
// Any ideas how do I do it?
}
int main(){
A phew(xxx,abcdefg); //object of class A
B ball(90),ball2(88); //object of class B
void *dataArray[2];
dataArray[0] = &ph1;
dataArray[1] = &ball;
showContentsofArray(dataArray); //function
}
나는 이것을 시도했는데, '->'의 왼쪽은 현재 (void *)를 참조하고 있기 때문에 '->'의 왼쪽을 가리켜 야한다는 에러를 준다. 내가 잘못 가고있는 어떤 생각이 들까? –
지금은 어떨까? – eLRuLL
showContentsOfArray는 void가 아닌 기본 클래스 포인터의 배열을 가져야합니다. 일반적으로 C++의 void ptrs를 다룰 필요는 없습니다. void *를 없애고 기본 클래스 ptrs 및 가상 함수로 작업하면 캐스트의 필요성이 제거되고 코드가보다 깨끗 해집니다. 그 변화를 적용하면 기본적으로 내 대답을 얻었습니다. – Ricibob