2013-02-20 4 views
0

나는 Planet이라는 클래스가있다.배열을 함수로 전달하려면

그리고 행성 개체 배열이 있습니다. 다음과 같이

나는 배열을 선언

planet * planetList[5] = 
{ 
    new planet(...), 
    new planet(...), 
    new planet(...), 
    new planet(...), 
    new planet(...), 
}; 

를 그래서 나는이 두 함수로이 배열을 전달해야합니다. 두 함수의

, 나는 그들을 정확히 같은 매개 변수를 사용하여, 같은 선언

void function1 (planet planetList[5], int numOfPlanets) {...} 
void function2 (planet planetList[5], int numOfPlanets) {...} 

하지만이 두 함수를 호출 할 때,

// receives no error 
function1(planetList, numOfPlanets); 
// error saying "cannot convert parameter 1 from 'planet *[5]' to 'planet []'" 
function2(planetList, numOfPlanets); 

사람은이 현상을 설명 할 수 있습니까?

void function1 (planet** planetList, int numOfPlanets) {...} 
void function2 (planet** planetList, int numOfPlanets) {...} 
+0

아마 행성 배열을 만들고 새 배열을 사용하지 않을 수 있습니다. 그게 보통 이런 식으로하는거야. –

답변

2

당신은 행성 포인터의 배열 (행성 * [])를 선언했지만, 함수 매개 변수는 행성 객체 배열 (행성 [])은 다음과 같습니다

+0

고마워! 당신은 내 문제를 해결했습니다! – user1802890

0

이 시도해보십시오. 따라서 함수 호출이 작동하지 않아야합니다.

시도 : 객체를 가리키는 포인터의 배열이 너무 포인터의 배열에 대한 포인터는
의 WRK을 할 것입니다

void function1(planet *planetList[5], int numOfPlanets) {} 
void function2(planet *planetList[5], int numOfPlanets) {} 
0

당신은 object.You를 가리키는 포인터의 배열 한이 전
void function1 (planet *planetList[5], int numOfPlanets) {...}
void function2 (planet *planetList[5], int numOfPlanets) {...}

또는

void function1 (planet **planetList, int numOfPlanets) {...}
void function2 (planet **planetList, int numOfPlanets) {...}

에 대한
0

난 당신이 행성 객체에 대한 포인터의 배열을 가지고, 행성의 배열

없음

개체를 가지고있다. 객체 배열은 다음과 같습니다.

planet planetList[5] = 
{ 
    planet(...), 
    planet(...), 
    planet(...), 
    planet(...), 
    planet(...), 
}; 

아마도 원하는 것입니다.

당신이 정말로 어떤 이유로 포인터의 배열을 원한다면, 당신이 동의하는 기능을 변경해야합니다 :

void function1(planet * planetList[5], int numOfPlanets); 

또는 동등

void function1(planet ** planetList, int numOfPlanets); 

사람이 설명 할 수 이 현상?

아니요, 두 기능 모두 동일한 방식으로 컴파일되지 않아야합니다. 더 완벽한 예제를 게시하여 현상을 스스로 재현 할 수 있습니까?

+0

예, 두 기능이 의도 한대로 작동하지 않는다는 것이 옳았습니다. 그러나 제 기능 중 하나에 대해서는 컴파일 오류가 표시되지 않습니다. 선언을 구현 한 후에 함수가 올바르게 작동합니다. 고맙습니다. – user1802890

관련 문제