接口和模板,这样行不?

interface IWriter
{
    void write(U)(U x);
}

class Foo : IWriter
{
    void write(U)(U x, int y)
    {
        writeln(x);
    }
}
void main()
{
}

你没有使用,所以未检查模板.
阿里:函数模板不能为虚函数.函数模板是模板,实例是函数.
用虚表动态分发的语言不知道虚表多大.
Foo.write隐藏了Iwriter.write.名字隐藏不算错.

  auto i = new Foo();
  i.write(1, 2);   //可以编译.
IWriter i = new Foo();
  i.write(1); //链接错误
posted @ 2019-09-21 11:22  zjh6  阅读(16)  评论(0)    收藏  举报  来源