在C ++中模仿类似Golang的接口

时间:2017-07-01 01:00:43

标签: c++

我想在c ++中实现没有继承的golang接口。

例如: -

jq

有没有办法实现这个?

1 个答案:

答案 0 :(得分:3)

是的,您可以使用模板:

template <typename T>
void Copy(T item) {
    item.copy();
}

然后你根本不需要课程Copyable

如果类型T没有copy()方法,则无法编译(如您所料)。

C++ Concepts是一个建议的功能,有一天它可能会成为标准语言,但目前只有某些编译器支持,例如GCC(6或更高版本)。