InterfaceBaseList의 메소드를 현재 인터페이스에 구현하려면 어떻게해야합니까? 예 :인터페이스 기본 목록에서 최종 인터페이스 구현을 인식하지 못합니다.
interface bar(T)
{
void method1(T a);
void method2(T a);
}
interface baz: bar!int
{
final void method1(int a){}
}
class foo: baz
{
this(){method1(0);}
void method2(int a){}
}
void main()
{
auto Foo = new foo;
Foo.method2(0);
}
출력 :
myfile.d(xx): Error: foo interface function 'void method1(int a)'
is not implemented
이 baz.method1
것을 얻을 나던 컴파일러가 실제로 bar.method1
것 같다. 예제에서는 baz에서 몇 가지 이유로 method1이 항상 동일한 구현을 갖는다는 것을 알 수 있습니다. 바스 구현자는 막대로 다운 캐스팅 될 수 있습니다 (바에서 최종 더미를 만드는 것은 불가능합니다).
내가 얻을 다음 기본 클래스의 방법 –
를 오버라이드 (override) 방법에'override'를 추가'오류 : 기능 SpecItf.baz.method1가 아닌 가상 function'의 bar.method1 가상으로 간주되지 않습니다 무시할 수 없습니다? –
템플릿 방법은 일반적으로 –