C + + - 다 중 상속 (multiple inheritance) 오류 (ambiguous)

다 중 상속 (multiple inheritance) 오류 (ambiguous)
 
본문 주소:http://blog.csdn.net/caroline_wendy/article/details/23737553
 
다 중 계승, 기본 클래스 (base class) 의 구성원 함수 이름 이 같 으 면 다시 불 러 오기 (overload) 함수 호출 은 Public 와 private 를 무시 하고 가장 좋 은 일치 함 수 를 선택 합 니 다.
일치 도가 같 으 면 오류 가 발생 합 니 다: request for member 'xxx' is ambiguous, (GCC)
사용 하려 면 구체 적 인 도 메 인 연산 자, 지정 클래스 ("class: method ()") 를 추가 할 수 있 습 니 다.
코드 는 다음 과 같 습 니 다:
/*
 * test.cpp
 *
 *  Created on: 2014.04.14
 *      Author: Spike
 */

/*eclipse cdt, gcc 4.8.1*/

#include 
#include 

using namespace std;

class BorrowableItem {
public: //  
	void checkout() { std::cout << "BorrowableItem" << std::endl; }
};

class ElectronicGadget {
private: //  
	bool checkout() const { return true; };
};

class MP3Player:
		public BorrowableItem,
		public ElectronicGadget
{};

int main() {
	MP3Player mp;
	mp.BorrowableItem::checkout(); //            
	return 0;
}

 
출력:
BorrowableItem

좋은 웹페이지 즐겨찾기