2011-10-13 3 views

답변

21

virtual을 기본 클래스에 선언하면 virtual 키워드가 생략 되어도 파생 클래스에서도 가상입니다.

그러나 설명서 목적으로는 어쨌든 그것을 반복하는 것이 좋습니다.

0

클래스가 가상 함수를 상속하는 경우 virtual 키워드를 사용하지 않아도 해당 함수의 새롭고 무시되는 선언이 자동으로 가상으로 만들어집니다.

2

함수는 여전히 가상입니다 (동일하거나 공변 인 서명이 있다고 가정). 재정의 할 때 virtual을 사용하면 중복됩니다.

+3

컴파일러에는 중복 될 수 있지만 클래스를 사용하는 모든 사람에게 좋은 설명서입니다. –

+0

@ LokiAstari : correct. – PlasmaHH

5

가상으로 기능을 만들 수 없으므로 가상으로 유지되며 기능 호출은 일반적으로 가상입니다. 물론, 컴파일러가이를 최적화하고 직접 호출을 할 수 있지만 상황에 맞지 않는 상황이 있습니다.

1

파생 클래스에 영향을주기 위해 생성 된 가상 메서드 (메서드를 가상으로 표시하면 파생 클래스에서 vtable을 사용함). 그리고 재정의 된 방법은 가상 될 것입니다.

관련 문제