2013-07-23 2 views
0

영화 데이터베이스 소프트웨어를 만들고 싶다고 가정 해 봅시다.클래스에 대한 일반적인 프로그래밍 문제

나는 이름, 성, 생년월일, 수상 등의 속성이있을 것이다 클래스 배우를해야하고, 또한 "영화"개체의 배열을 가져야한다.

는 나 또한 제목, 기간, 연도 등의 속성이있을 것이다 클래스 영화가 필요하지만, 그것은 또한 "배우"개체의 배열을 가져야한다. 영화의 캐스트를 나타 내기 위해.

배우 객체는 동영상 개체가 재생하는 모든 배우의 목록을 필요로하는 것처럼, 그 배우에 의해 수행 된 모든 영화의 목록이 필요합니다. 꽤 지저분 해져서 다른 클래스를 포함하고 있기 때문에 컴파일러가 멈추는 경우가 있습니다.

which would be the right way to represent this situation? 
+4

해결 방법은 언어에 따라 다릅니다. 그러니 하나의 언어를 선택하십시오. –

+2

그게 숙제입니까? – Reddy

+2

이것은 거의 숙제입니다 (어쨌든 IMDB를 능가 할 수는 없습니다). "우리의 제안을 구하십시오"보다는 "생각하기"라는 방식으로 접근하고 싶을 것입니다. (그리고 당신이 당신 자신의 프로젝트를 생각해 내고 자신의 선생님이되는 경우에는 아무런 차이가 없습니다. 프로그래밍 학습의 주요 부분은 이와 같은 문제에 대한 해결책을 찾는 방법을 배우는 것입니다. –

답변

0

대부분의 언어에서 개념은 동일합니다. 아시다시피 Actors에 "Movie objects 목록"이 포함될 수 없으며 그 반대의 경우도 있으므로 각각의 목록을 유지하고 다른 방법으로는 "참조"하십시오. 다른 목록이나 연관 컨테이너 (예 : 링크 된 목록이 아니라 C++에서 키/값 "std :: map"사용)를 검색하는 데 사용할 수있는 고유 한 참조 값 (예 : 숫자가 증가)을 사용하고 있거나 클래스 Actor에 .... 논리적으로 연결된 개체에 직접

+0

방금 ​​운동 중입니다. objective-c를 사용하여. 내 문제는 내가 데이터베이스를 사용하고 싶지 않다, 또는 난 그냥 테이블에 두 개의 클래스를 어떤 아이디 n 링크를 제공 할 것입니다.그래서 내 운동을위한 어떤 생각? 숙제가 아니라 ... 단지 셀프 그레이딩 – mystudioos

+0

그게 뭔가에 관한 것입니다. 두 클래스 모두에게 ID를주고 값을 일치시키는 배열이나 nsdictionary (해시 맵)를 만들지 만 올바른 해결책이 맞는지 확실하지 않았습니다 – mystudioos

+0

데이터베이스를 사용하는 것을 상상하지 못했습니다. 심지어 메모리 내 구현을 위해 실제로 다른 값을 유지하지 않고 다른 유형의 객체를 참조하는 방법이 필요합니다. 종종 예를 들어 객체를 벡터, 해시 또는 트리에 저장 한 다음 다른 키 필드 (예 : 영화 이름, 감독, 연도)를 해결하는 여러 추가 해시 테이블,지도 또는 멀티 맵 (각 키를 여러 레코드로 매핑)을 갖습니다. 나는 목표 - c를 전혀 모릅니다 - 예제 코드를 제공하기가 어렵습니다. –

1

당신은 참조를 사용할 수 Actor* 클래스 MovieMovie*를 참조하거나 (약한) 포인터를 유지. 그리고 클래스의 전달 선언 :

class Actor; 

public class Movie { ... Actor* ... } 

헤더에 있습니다. 클래스 구현에서 .cpp이면 다른 클래스의 헤더를 포함하고 다른 클래스의 메서드를 사용할 수 있습니다.

관련 문제