상속시 이름이 같은 멤버 변수를 처리하는 방법
1. 하위 클래스의 멤버 변수가 상위 클래스의 멤버 변수와 이름이 같은 경우
2. 하위 클래스는 여전히 상위 클래스에서 동일한 이름을 가진 멤버를 상속합니다
3. 범위 판별자를 통해 하위 클래스에서 동일한 이름을 가진 멤버를 구별합니다:: (파생 클래스에서 기본 클래스와 동일한 이름을 가진 멤버를 사용합니다. 클래스 이름 한정자를 명시적으로 사용)
4 , 동일한 이름을 가진 멤버는 메모리의 다른 위치에 저장됩니다
2. 파생 클래스의 static 키워드
상속 static 키워드와 결합하면 어떻게 될까요?
이론적 지식
Ø 기본 클래스에 의해 정의된 정적 멤버는 모든 파생 클래스에서 공유됩니다.
Ø 정적 멤버 자체의 액세스 특성과 상속에 따라 파생 클래스의 메서드, 클래스 계층 구조에는 다양한 액세스 속성이 있습니다(파생 클래스의 액세스 제어를 준수합니다)
Ø 파생 클래스의 정적 멤버에 액세스하려면 다음 형식을 사용하여 명시적으로 명시합니다.
클래스 이름:: member
또는 멤버
다중 상속의 개념
Ø 클래스에 직접 기본 클래스가 여러 개 있는 상속 관계 다중 상속이라고 합니다
Ø 다중 상속 선언 구문
클래스 파생 클래스 이름: 액세스 제어 기본 클래스 이름 1, 액세스 제어 기본 클래스 이름 2, …, 액세스 제어 기본 클래스 이름 n
{
데이터 멤버 및 멤버 함수 선언
};
Ø C 클래스는 액세스에 따라 클래스 A와 클래스 B의 멤버를 동시에 상속할 수 있습니다.
자체 멤버
파생 클래스 구성 및 다중 상속 액세스
Ø 다중 기본 클래스의 파생 클래스 생성자 초기화를 사용하여 기본 클래스 생성자를 호출하여 데이터 멤버를 초기화할 수 있습니다.
Ø 실행 순서는 단일 상속 생성자의 경우와 유사합니다. 여러 직접 기본 클래스 생성자가 실행되는 순서는 파생 클래스를 정의할 때 상속된 각 기본 클래스가 지정되는 순서에 따라 달라집니다.
Ø 파생 클래스 개체에는 직접 또는 간접 기본 클래스 멤버가 여러 개 있습니다. 다른 이름으로 멤버에 액세스할 때 모호함이 없습니다. 서로 다른 기본 클래스에 동일한 이름을 가진 멤버가 있는 경우 파생 클래스 개체에 액세스할 때 해당 멤버를 식별해야 합니다.파생 클래스가 여러 기본 클래스에서 파생되고 이러한 기본 클래스에 A 공통이 있는 경우 기본 클래스, 기본 클래스에 선언된 이름에 접근 시 모호성이 발생할 수 있음
분석:
요약:
Ø 파생 클래스가 여러 기본 클래스에서 파생되고 이러한 기본 클래스에 공통
기본 클래스가 있는 경우 기본 클래스가 클래스에 선언된 이름에 액세스하면
모호함이 발생할 수 있습니다
Ø 여러 상속 경로에 공통 기본 클래스가 있는 경우 상속 경로 어딘가에
수렴점, 이 공개 기본 클래스는 여러 기본 클래스 하위를 생성합니다. -파생 클래스
의 개체에 있는 개체Ø 이 공용 기본 클래스가 파생 클래스에서 하나의 하위 개체만 생성하도록 하려면 이 기본 클래스
를 가상 상속으로 선언해야 합니다. 이 기본 클래스는 가상 기본 클래스입니다.
Ø 가상 상속 선언에서는 virtual 키워드를 사용합니다
3 상속 요약
Ø 상속은 객체지향 프로그래밍에서 소프트웨어 재사용을 구현하는 중요한 방법입니다. 프로그래머는 기존 기본 클래스를 기반으로 새로운 파생 클래스를 정의할 수 있습니다.
Ø 단일 상속을 갖는 파생 클래스에는 기본 클래스가 하나만 있습니다. 다중 상속이 포함된 파생 클래스에는 여러 기본 클래스가 있습니다.
Ø 기본 클래스 멤버에 대한 파생 클래스의 액세스는 상속 방법과 멤버 속성에 따라 결정됩니다.
Ø 파생 클래스 객체를 생성할 때 먼저 기본 클래스 생성자를 호출하여 파생 클래스의 기본 클래스 멤버를 초기화합니다. 소멸자가 호출되는 순서는 생성자가 호출되는 순서와 반대입니다.
Ø C++에서는 클래스 상속 관계에서 멤버 액세스의 모호성을 방지하기 위해 가상 상속 메커니즘을 제공합니다.
Ø 다중 상속은 강력한 소프트웨어 재사용 기능을 제공하지만 프로그램의 복잡성도 증가시킵니다.
위는 C++ 리뷰 포인트 아홉 번째 정리 - 상속 2입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!