[C ++] 다형성 클래스면 질문

다형성 클래스 얼굴 질문

  1. 다형성은 무엇인가?
    A는 : 다른 대상은 (동일한 기능)와 같은 경우, (다른 달성 내부 기능) 다른 결과 수율을 완성 하였다.
  2. 과부하 무엇, 다시 정의, 다시?
범위 필요한 함수 이름, 매개 변수, 반환 값 기타 요구 사항
과부하 같은 범위에서 두 기능 함수 이름, 동일한 매개 변수
다시 쓰기 (커버) 두 함수는 기지의 범위 및 파생 된 클래스에 함수 이름, 매개 변수, 반환 값은 동일합니다 두 기능은 가상해야합니다
재정의 (숨겨진) 두 함수는 기지의 범위 및 파생 된 클래스에 같은 함수 이름 재기록을 형성하지 않는 기본 클래스의 같은 이름과 파생 클래스가 재정의
  1. 다형성의 원리?
    A : 가상 기본 테이블 구현.

  2. 생성자는 가상 함수를 할 수 있는가?
    A : 아니오. 때문에 초기화 단계 만 초기화 생성자에서 개체 가상 함수 테이블 포인터.

  3. 소멸자는 가상 기능을 할 수 있는가?
    A : 예. 그러나, 조건은 특정 종류의 것이 가상 소멸자 함수로서 정의되어야한다. (참조 링크).

  4. 가상 함수는 정적 형식의 함수로 정의 할 수 있습니까?
    A : 아니오. 주소 가상 함수가없는 가상 테이블 포인터가 없다, 그래서 객체가 없다, 정적 객체를 호출 할 수 없습니다 갈 수있는 가상 테이블에 저장하는 가상 테이블을 찾을 수 없습니다. 어떤 가상 테이블은 확실히 다형성을 달성하지 않습니다. 어떤 오브젝트가이 포인터에는없는 가상 함수 다형성을 달성 할 수없는, 찾을 수없는 정적 정적 가상 테이블 함수로 정의 된 다중 상태를 달성하는 것이다.
    인라인 함수는 올바른 가상 함수가 아닙니다

  5. 가상 함수는 인라인 함수로 정의 할 수 있습니까?
    A : 아니오. 인라인 함수는 일반 함수 주소가, 당신은 시내 통화의 확장에서 수행되는 인라인 함수를 사용할 때마다 해결하지, 일반 기능에 대해 (호출을 의미) 주소 전화에 어셈블러 코드를 호출 할 때, 하지만 인라인 함수가 어떤 주소입니다, 시내 전화에서 시작되었다. 가상 함수 테이블에없는 주소

  6. 어떤 단계는 가상 함수 테이블은 무엇에가 생성됩니다?
    A는 : 가상 함수는 컴파일 단계가 발생 나타낸다. 일반의 부호 (불변 영역)의 존재

  7. 가상 함수 테이블 (가상 테이블), 가상 테이블 포인터, 가상 함수가있는있는 존재 하는가?
    A : 가상 함수 (가상 함수 수정) 및 정상 기능 코드 세그먼트에 존재하는 가상 물체가 테이블 포인터 (가상 테이블을 가리키는)에 존재 입증 가상 테이블은 코드 세그먼트 (불변 영역)에 존재한다.

  8. 가상 함수 테이블 (가상 테이블) 가상 테이블 포인터 관계 가상 함수?
    A : 가상 테이블 포인터가 대상에 존재하는 가상 테이블에 대한 가상 테이블 포인터, 즉 가상 테이블 포인터는 첫 번째 가상 테이블의 주소입니다. 가상 함수 포인터 테이블은 가상 함수에 저장된 테이블 클래스 가상 주소의 배열이다. 다중 상태, 가상 포인터 테이블을 통해, 가상 테이블을 찾을 때, 가상 주소, 가상 함수 호출에 의해 가상 함수 테이블을 찾을 수 있습니다.

  9. 신속하고 빠른 액세스 가상 함수 또는 정상적인 기능을 객체?
    A : 1. 빨리 일반 오브젝트합니다. 때문에 일반 객체 호출 만의 유형과 일반 전화;
    개체가 개체, 다형성 구성, 실행시 가상 함수 호출에 필요한 가상 함수 테이블 조회로 이동하기 때문에라는 정상적인 기능 블록에 대한 포인터 또는 참조가되는 경우.

  10. C ++ 다이아몬드 상속은 무엇입니까? ? 가상 상속 원칙
    A : : 다중 상속 다중 하위 클래스가 두 개 이상의 직접 부모가 상속이 상속를 호출합니다. 다이아몬드 상속 다중 상속의 경우입니다. 동일하고 또한 직접 부모의 직접 부모의 두 개 이상의 서브 클래스입니다. 이 다이아몬드 상속입니다
    가상 상속이 데이터 중복 및 원칙의 모호성을 해결 다이아몬드. 가상 기본 테이블 포인터를 통해 가상 상속

  11. 추상 클래스는 무엇인가? 추상 클래스의 역할?
    A : 추상 클래스는 순수 가상 함수를 포함하는 클래스입니다. 추상 클래스의 역할은 다음과 같습니다 또한이 인터페이스 상속 (링크 참조) 반영에, 가상 함수를 재정의하는 파생 클래스를 강제 https://blog.csdn.net/weixin_43939593/article/details/103687764을

发布了55 篇原创文章 · 获赞 12 · 访问量 5198

추천

출처blog.csdn.net/weixin_43939593/article/details/103739994