티스토리 뷰

class Derived : public Base
{
	public:
	Derived(int value)
		: Base(value)
	{
	}
	
	using Base::m_value;
    .
    .
    .

 

이렇게 선언하게 되면,

 

int main()
{
	Derived derived(7);
	derived.m_value = 1024; // ok!
	
	return 0;
}

 

이런식으로 사용이 가능하다.

 

private:
//1
	using Base::print; // do not add ()
//2
    void print() = delete;

 

이것을 Derived에 추가하게 되면

 

main()에서 derived.print() 사용 불가.

 

 

11.9

 

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.USBDevice::getID();
	my_device.NetworkDevice::getID();
}

 

 

다중 상속을 이용시 이런식으로 다이아몬드 상속의 문제점이 발생할 수 있으니 주의해가면서 사용해야 한다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함