11.9 다중 상속
#include <iostream>
using namespace std;
class USBDevice
{
private:
long m_id;
public:
USBDevice(long id) : m_id(id) {}
long getID() { return m_id; }
void plugAndPlay() {}
};
class NetworkDevice
{
private:
long m_id;
public:
NetworkDevice(long id) : m_id(id) {}
long getID() { reutnr m_id; }
void networking() {}
};
class USBNetworkDevice : public USBDevice, public NetworkDevice // 다중 상속
{
public:
USBNetworkDevice(long usb_id, long net_id) // 생성자를 만들때는 두개의 아이디를 받아 각각 초기화 해준다.
: USBDevice(usb_id), NetworkDevice(net_id)
{}
}
int main()
{
USBNetworkDevice my_device(3.14, 6.022);
my_device.networking();
my_device.plugAndPlay();
// my_device.getID(); // 문제는 중복된 함수를 사용할 때 발생한다.
my_deviceUSBDevice::getID(); // 이런식으로 사용 가능.
return 0;
}
만약 클래스 A로부터 B1이 상속받고, A로부터 B2가 상속받고, C가 B1, B2가 상속받으면 다이아몬드 상속이라고 불린다.