Skip to main content

가상 클래스 란 무엇입니까?

∎ 가상 클래스는 메모리에 한 번만 할당되는 클래스로, 해당 클래스의 어린이가 메모리에 설정된 부모 클래스의 한 사본 만 사용하도록합니다.클래스는 공통 특성이나 속성을 공유하는 객체 그룹입니다.클래스 가상을 만들면 객체 지향 프로그래밍 언어가 두 번째 이상의 부모 클래스에서 공통 조상 기본 클래스에서 파생 될 때 여러 상속을 사용할 수있는 기능을 제공합니다.참조 된 컴퓨터 프로그래밍 언어, 가상 키워드, 유사한 키워드 또는 클래스의 구문 및 의미론에 따라 특정 클래스가 가상으로 간주되어야 함을 암시하는 데 사용됩니다.어린이 수업이 여러 학부모 수업에서 동시에 파생 될 수 있습니다.C ++와 같은 프로그래밍 언어에서 클래스는 두 부모 클래스의 모든 멤버 데이터 및 멤버 기능을 한 번에 상속하고 두 가지 부모 데이터 및 기능 세트에 액세스 할 수 있습니다.다중 상속을 지원하는 다른 언어로는 Perl, Python, TCL 및 Eiffel이 포함됩니다.

다중 상속 계층에서 문제가 발생합니다. 두 명 이상의 학부모 수업이 원래 하나 또는 동일한 조부모 수업에서만 도출 될 때 발생합니다.이것을 다이아몬드 문제라고하며,이 상황에서 계층 구조가 어떻게 보이는지에서 비롯된 이름입니다.컴파일러 프로그램이 공통된 조부모가있는 두 부모 수업으로 만든 손자 수업과 같은 수업을 인스턴스화하려고 할 때, 조부모의 두 사본은 각 부모마다 하나씩 만들어집니다.memory 메모리에 동일한 조부모의 여러 사본으로 인한 모호함으로 인해, 컴파일러는 손자가 조부모의 데이터 나 기능에 액세스하는 데 어떤 조부모의 사본을 확인할 수 없습니다.이 상황을 해결하기 위해 C ++에서 조부모는 부모를 선언 할 때 가상 수업으로 만들어집니다.이로 인해 컴파일러는 부모가 공유하는 할아버지의 한 사본 만 만들게됩니다.조부모가 가상 클래스가되면, 컴파일러는 조부모의 사본이 하나만 있기 때문에 손자가 조부모에게 어떻게 접근 해야하는지 결정하는 데 아무런 문제가 없습니다.앞으로 훨씬 더 큰 계층 구조의 기반이되거나 기반이됩니다.가상 클래스의 적절한 활용은 클래스 계층 구조가 개발에서 더 큰 위도를 제공합니다.그러나 찾기 어려운 오류를 일으킬 가능성이 있습니다.견고한 컴퓨터 프로그래밍 엔지니어링 원칙에 대한 연구는 부적절한 프로그램 조직의 예기치 않은 부작용이 발생하지 않도록하는 데 도움이 될 것입니다.