현재 우리는 tcp/ip, udp/ip, usb 등 코어에 통신 형태를 제공하는 서비스 플러그인을 허용하는 코드 본문을 가지고 있습니다.이 서비스 플러그인은 피드백 처리기 클래스 인스턴스를 추가 처리를 위해 코어에 추가합니다.코드 유닛 포함을 피하기위한 방법으로 C++ 가상 키워드
현재 구현에서 서비스 프로젝트 (dlopen과 friends를 통해 코어에서 런타임에 가져온 별도의 동적 링크 라이브러리 임)는 코어 소스 코드에있는 notifier.cpp 파일에 대해 컴파일됩니다 (개별 프로젝트). 이것에 의해, 통지 메소드의 구현에 액세스 할 수있게됩니다. 이것은 완벽하게 불만을 없애줍니다.
두 가지 대체 옵션 : 1. 알리미 메서드 구현을 헤더 파일에 넣습니다. 2. 런타임까지 알리미 메서드 virtual 및 지연 바인딩을 선언합니다.
계산 오버 헤드의 문제를 피하면서 옵션 2의 영향은 무엇입니까?
다른 옵션이 있습니까?
감사
파생 된 클래스에서 재정의하려는 경우를 제외하고 왜 '가상'선언을하고 싶습니까? –
덧붙여서, 또 다른 옵션은 메서드 구현을 서비스가 아닌 핵심으로 컴파일하는 것입니다. –
메소드의 내부 처리가 변경되면 (버그 수정 등),이 수정 사항을 이용하기 위해 모든 플러그인을 다시 컴파일하지 않으려 고합니다. 우리가 런타임 바인딩을 가지고 있다면 코어에서 실행되는 버전을 취하게 될 것입니다. – Corvusoft