#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가 상속받으면 다이아몬드 상속이라고 불린다.