다중 상속은 단일 상속보다 복잡하다. 새로운 모호성 문제를 일으킬 뿐만 아니라 가상 상속이 필요해질 수 있다. 가상 상속을 쓰면 크기 비용, 속도 비용이 늘어나며, 초기화 및 대입 연산의 복잡도가 커진다. 따라서 가상 기본 클래스에는 데이터를 두지 않는 것이 실용적이다. 다중 상속을 적법하게 쓸 수 있는 경우가 있다. 여러 경우 중 하나는 인터페이스 클래스로부터 public 상속을 시킴과 동시에 구현을 돕는 클래스로부터 private 상속을 시키는 것이다. 다중 상속 다중 상속(Multiple inheritance: MI)을 하게 되면 둘 이상의 기본 클래스로부터 똑같은 이름을 물려받을 가능성이 생긴다. 즉, 다중 상속 때문에 모호성이 생길 수 있다. class BorrowbleItem { public:..
클래스와 객체 - 객체: 데이터와 이를 처리하기 위한 메서드의 묶음 - 클래스: 객체를 만드는 형틀 혹은 포멧 클래스로부터 만들어지는 객체를 그 클래스의 인스턴스(instance)라 한다. 클래스 정의하기 class라는 키워드로 시작하고 __init__( )라는 생성자 메서드를 가진다. 객체 생성 클래스 이름으로 호출하면 객체가 생성된다. 프라이빗 멤버와 퍼블릭 멤버 클래스 안에서는 크게 두 가지 멤버가 존재한다. 하나는 클래스 안에서만 접근 가능한 프라이빗 멤버, 다른 하나는 클래스 안과 밖에서 모두 접근 가능한 퍼블릭 멤버 멤버 앞에 __키워드를 붙이면 프라이빗 멤버가 된다. 클래스 멤버 클래스의 메서드 밖에서 선언한 변수로 해당 클래스에서 관리하는 멤버이다. 클래스 이름으로 접근해야 하며 객체로 접..