c++에서 자바와 같은 abstract class 나 final 같은 역할을 할

hwayak의 이미지

1. 자바에서 abstract class 와 같은 역할을 하는게 c++에 무엇이 있나요?

2. 자바에서 메쏘드 앞에 final 이란 키워드를 붙이면 이 메쏘드는 오버라이딩할 수 없다는 것을 나타내는 것으로 알고 있는데요. 이와 같은 역할을 하는게 c++에 무엇이 있나요?

jof4002의 이미지

1.

class A
{
    virtual void func() = 0;
};

이렇게 = 0 을 선언하면 A를 직접 만들 수는 없고, A를 상속받은 클래스에서 func를 구현해줘야 합니다.

2. C++의 언어차원에서 final을 지원하지는 않습니다.

죠커의 이미지

hwayak wrote:
2. 자바에서 메쏘드 앞에 final 이란 키워드를 붙이면 이 메쏘드는 오버라이딩할 수 없다는 것을 나타내는 것으로 알고 있는데요. 이와 같은 역할을 하는게 c++에 무엇이 있나요?

stroustrup이 싫어하는 것으로 알고 있습니다.

그의 홈페이지에 이유가 있던 걸로 기억합니다만 읽어 보지는 못했습니다.

doldori의 이미지

CN wrote:
stroustrup이 싫어하는 것으로 알고 있습니다.

그의 홈페이지에 이유가 있던 걸로 기억합니다만 읽어 보지는 못했습니다.


http://www.research.att.com/~bs/bs_faq2.html#final에 있군요.
그다지 필요성을 느끼지 않아서 그랬다네요.
죠커의 이미지

doldori wrote:
CN wrote:
stroustrup이 싫어하는 것으로 알고 있습니다.

그의 홈페이지에 이유가 있던 걸로 기억합니다만 읽어 보지는 못했습니다.


http://www.research.att.com/~bs/bs_faq2.html#final에 있군요.
그다지 필요성을 느끼지 않아서 그랬다네요.

simple하군요 :-)