OOP 전문가를 위한 질문입니다. - 페이지 35

 
Реter Konow :

그리고 계층 구조의 깊이 어딘가에 공통 루트를 가진 자손 클래스 간의 교차 링크는 어떻게 설정됩니까?

예: 클래스 F와 클래스 Z는 계층 구조에서 공통 루트인 클래스 A를 가진 상속 체인의 최종 링크입니다.

클래스 F에서 클래스 Z의 데이터 또는 메서드를 가져오는 방법은 무엇입니까?

안 돼요. 그런 건 없습니다. 그러나 이것은 필요하지 않습니다.

개체를 만든 후 한 개체의 포인터를 두 번째 개체에 전달하고 두 번째 개체의 포인터를 첫 번째 개체에 전달할 수 있습니다.

대화가 수업에 관한 것이라면 두 개의 콜론을 통해 무엇이든 참조할 수 있습니다. 하지만 왜 필요한가? 물론 필요한 경우도 있지만 이것은 OOP의 극히 미미한 가능성입니다.

 
Dmitry Fedoseev :

안 돼요. 그런 건 없습니다. 그러나 이것은 필요하지 않습니다.

객체를 생성 한 후 이 객체의 포인터를 두 번째 객체에 전달하고 두 번째 객체의 포인터를 첫 번째 객체에 전달할 수 있습니다.

대화가 수업에 관한 것이라면 두 개의 콜론을 통해 무엇이든 참조할 수 있습니다. 하지만 왜 필요한가?

그것은 모두 클래스 F가 해결하는 작업에 달려 있습니다.타사 상속 체인에서 사용되는 데이터 또는 메서드가 유용할 수 있는 상황이 있을 수 있습니다.
 

예: 클래스 F는 Color 및 Length 메서드를 저장하고 클래스 Z는 Sound 및 Width 메서드를 저장합니다.

Length 및 Width의 두 가지 속성이 있는 개체가 나타나지만 F 및 Z 클래스에서 계산됩니다. 어떻게 될까요? 이러한 메서드를 반복하여 별도의 클래스를 만들거나 액세스하는 방법은 무엇입니까? (점 4개로?)

 
Реter Konow :

예: 클래스 F는 Color 및 Length 메서드를 저장하고 클래스 Z는 Sound 및 Width 메서드를 저장합니다.

Length 및 Width의 두 가지 속성이 있는 개체가 나타나지만 F 및 Z 클래스에서 계산됩니다. 어떻게 될까요? 이러한 메서드를 반복하여 별도의 클래스를 만들거나 액세스하는 방법은 무엇입니까? (점 4개로?)

새 클래스를 만들고 여기에 F 및 Z 클래스를 포함할 수 있습니다.

 class F{
};

class Z{
};

class Y{
   public :
   F f;
   Z z;
}
 
Dmitry Fedoseev :

새 클래스를 만들고 여기에 F 및 Z 클래스를 포함할 수 있습니다.

클래스-"활"? 알았습니다. 고마워.
 
Dmitry Fedoseev :

새 클래스를 만들고 여기에 F 및 Z 클래스를 포함할 수 있습니다.

그리고 원하는 클래스에 대한 포인터를 얻기 위한 메소드를 만들기 위해 다른 데이터가 필요한 클래스에서도 가능하다.

 
Реter Konow :
클래스-"활"? 알았습니다. 고마워.

원하는 클래스에 대한 포인터를 얻고 포인터를 사용하여 class 의 객체 를 얻을 수 있습니다. 그러나 비어 있거나 새 클래스 개체에 대한 포인터를 얻지 않도록 이 작업을 신중하게 수행해야 합니다.

 
Artyom Trishkin :

원하는 클래스에 대한 포인터를 얻고 포인터를 사용하여 class 의 객체 를 얻을 수 있습니다. 그러나 빈 클래스 객체에 대한 포인터를 얻지 않도록 조심스럽게 이 작업을 수행해야 합니다.

미묘함. 알았습니다. 상속 계층 구조는 명확하게 분류할 수 있고 미리 결정된 모호하지 않은 데이터로 편리합니다. 개체가 더 복잡해지면 클래스에서 제공되지 않는 메서드와 속성의 조합이 나타날 수 있으며, 이를 위해서는 "링크"의 구성이 필요합니다. 클래스 간의 교차 연결. 이것은 항상 편리한 것은 아니며 아름다운 배포 계획을 깨고 강제로 수정될 수 있습니다.
 
Реter Konow :
클래스-"활"? 알았습니다. 고마워.

예에서

 class F{
};

class Z{
};

class Y{
   public :
   F f;
   Z z;
}

클래스 Y에는 클래스 유형이 F 및 Z인 변수가 포함됩니다.

그러나 이미 어딘가에서 클래스 F와 Z의 객체를 만들고 사용한 경우 객체 Y에서는 해당 객체에 액세스할 수 없습니다. 객체 Y에는 클래스 F와 Z의 두 개의 새 객체가 있습니다.

그리고 이전에 생성되고 이미 사용된 클래스 F 및 Z의 개체에 액세스하려면 클래스 Y의 개체 F 및 Z에 대한 참조를 가져와야 합니다. 그러면 클래스 Y는 이미 F로 작성된 데이터로 작동할 수 있고 Z, 새 것과 깨끗한 F 및 Z를 사용하지 않습니다.

그러나 그러한 링크 객체를 즉시 생성하면 그 안의 F와 Z가 클래스 F와 Z에 대한 액세스 권한을 부여하고 클래스 Y를 통해서만 채워야 합니다. 원하는 객체에 대한 포인터를 얻고 포인터로 작업하십시오.

 
Реter Konow :
미묘함. 알았습니다. 상속 계층 구조는 명확하게 분류할 수 있고 미리 결정된 모호하지 않은 데이터로 편리합니다. 개체가 더 복잡해지면 클래스에서 제공되지 않는 메서드와 속성의 조합이 나타날 수 있으며, 이를 위해서는 "링크" 구성이 필요합니다. 클래스 간의 교차 연결. 이것은 항상 편리한 것은 아니며 아름다운 배포 계획을 깨고 강제로 수정될 수 있습니다.

아무것도 중단할 필요가 없습니다. 다른 클래스의 필수 개체에 대한 포인터를 제공하는 메서드를 클래스에 추가해야 합니다.

마지막 기사에서 나는 이전에 생성되어 작업 중이며 이미 심볼 컬렉션 클래스의 데이터 개체 와 현재 계정 개체를 거래 개체에 축적한 것에 대한 포인터를 전달합니다. 그리고 상인 계급은 항상 그랬던 것처럼 그들과 함께 일합니다.