클래스 A. 있다고 가정 그리고 B와 C는 A의 자녀
클래스 A는 내가 그것을 사용할 수 있도록, A 형의 배열을 정렬에 대한 일반적인 알고리즘을 가지고 B와 C에 대해서 알고리즘을 다시 쓰지 않고.
알고리즘에서 가끔은 교환해야합니다. 문제는 내가 유일한 유형 A와 개체를 볼 수 있다는 것입니다, 그리고 내가 할 경우 :
A aux = array[i]
array[i] = array[j]
array[j] = aux
을 나는 문제가있다 생각합니다. array [i], 아마도 그것의 타입 B, 그리고 aux는 타입 A이므로, 나는 정보를 잃어 가고 있다고 생각합니다.
내가 u는 내가 아버지 방법 알고리즘을 사용하여 개체의 일반적인 배열을 정렬 할 수있는 방법 ...이 상황을 이해 해요?
편집 : 초기 배열은 정적입니다.
Edit2가 : 너무이 불가능 해를 갖도록 : :: 정렬 (A 배열 [])로; 그리고 내가 원하는 것을 할 수 있습니까?, 교환 할 수 없습니다.
유일한 방법은 참조 배열이 있습니까? * 배열 []?
'A'배열이있는 경우 배열은 다형성이 아닙니다. 거기에 정보를 잃지 않고'B' 또는'C'를 넣을 수는 없습니다. 'A *'의 배열을 원한다면, 그 후에 해결책은 간단해야한다. –
타입 A의 값을 저장하는 경우에는 다형성이 없습니다. * 객체 조각화 *가 있습니다. 대신 포인터를 저장하십시오. 그런 다음 비교 함수를 가상화하여 자손을 정렬 할 수 있습니다. –
'A 클래스에는 A 형 배열 정렬을위한 일반 알고리즘이 있습니다.이 클래스에는 많은 책임이 있습니다. 그렇습니까? –