2011-07-02 2 views
1

이 질문은 다른 유사한 질문에서 온 것입니다. 때로는이 사건을 다루어야합니다.코드가없는 첫 번째 비 추상적 가상 메서드의 특수한 이름은 무엇입니까?

virtual 선언 된 초기 방법을 위해, 객체 지향 프로그래밍에 특별한 이름을 존재하는 경우 당신은 알고 있는가, 즉, 의도적으로 하지abstract하지만, 아무것도하지 않는, 또는 모든 코드를 가지고 있지 않지만, 어쩌면?

이 예제는 가상 코드이지만 모든 O.O. 프로그래밍 언어 :

public class MyBaseClass 
{ 
    public abstract virtual void OverrideMe(); 
    public virtual void DoSomething() { cout << "Hello Mars\n" } 
    public virtual void MayDoSomething() { /* Nothing, yet */ } 
} 

public class MyDerivedClass : MyBaseClass 
{ 
    public override void OverrideMe() { cout << "Hello Neptune\n" } 
    public override void DoSomething() { cout << "Hello Jupiter\n" } 
    public override void MayDoSomething() { cout << "Hello Venus\n" } 
} 

해당하는 경우 MyBaseClass::MayDoSomething() 사례.

건배.

+0

내가 왜 그런 방법이 필요한지 물어볼 수 있습니까? 그들이 아무것도하지 않으면 그들은 추상적으로 선언해야합니까? 그냥 궁금해. – Hnatt

+0

@Hnatt 이러한 메서드는 일반적으로 다른 메서드에 대한 도우미이며 자체적으로 사용되지는 않습니다. – umlcat

답변

1

의 이름은 일반적으로이지만이 유형의 방법을 사용하는 기술에 대해서는 여러 가지 이름을 들었습니다. 나는 그것이 특정한 용도에 달려 있다고 말할 것이다.

  • 그것은 잠재적으로는 stub
  • 이 될 수있을 수 IOC
  • 의 인스턴스가 될 수있는 callback 또는 hook

내가 생각할 수있는 유일한 일반적인 이름은 NOP 방법 !

+0

일부 프로세서 어셈블러에서 NOP를 알고 있지만 특정 우선 적용 가능한 방법으로 제한되어 있습니다. – umlcat