저는 보통 C#에서 프로그램을 작성하지만 약간의 C++을 시도하고 있으며 C++에서 인터페이스를 구현하려고 애 쓰고 있습니다.C++에서 인터페이스 구현하기
는 C#에서 나는 이런 식으로 뭔가 할 거라고 : C에서
class Base<T>
{
public void DoSomething(T value)
{
// Do something here
}
}
interface IDoubleDoSomething
{
void DoSomething(double value);
}
class Foo : Base<double>, IDoubleDoSomething
{
}
를 ++ 나는 이런 식으로 구현했습니다
template <class T>
class Base
{
public:
virtual void DoSomething(T value)
{
// Do something here
}
};
class IDoubleDoSomething
{
public:
virtual void DoSomething(double value) = 0;
};
class Foo : public Base<double>, public IDoubleDoSomething
{
};
문제는이 때문에 내가 푸를 인스턴스화 할 수 있다는 것입니다 추상 (DoSomething을 구현하지 않음). 나는 DoSomething을 구현할 수 있고 Base에 메서드를 호출 할 수 있다는 것을 알았지 만,이 작업을 수행하는 더 좋은 방법이 있기를 바랬습니다. 나는 다른 데이터 타입을 가지고있는베이스로부터 상속받은 다른 클래스들을 가지고 있으며, Base를 사용하지 않는 IDoubleDoSomething을 상속받은 다른 클래스들을 가지고있다.
도움을 주시면 감사하겠습니다.
, 어떤 방법으로 그것은 "더 나은"수 :
그래서 다음과 같이 귀하의 예제 작업을 할 수 있습니다, 주어진? –"Foo"가 Base에서 메서드를 상속 받았으며 구현이 필요하지 않은 C# 버전과 같이 "더 나은"기능을한다고 가정합니다. Foo의 Base에서 각 메소드를 구현하는 데별로 나빠질 것이 없다고 생각합니다. 그냥 지저분 해 보입니다. – Clueless
지저분하지만 더 좋은 방법을 찾지 못했습니다. ( –