【发布时间】:2015-03-13 07:52:29
【问题描述】:
我需要将一些 java 类转换为 C++。例如,对于如下所示的 java 接口:
public interface ListenerManager<L> {
void addListener(L listener);
void removeListener(L listener);
}
我的 C++ 有点生疏,所以我试图找出最好的翻译方法是什么。我在想这样的事情:
class IListener;
class ListenerManager
{
virtual void add_listener(IListener listener);
virtual void remove_listener(IListener listener);
};
然后在项目的其他地方将IListener 定义为基类。
这是正确的方法吗?
编辑:
感谢cmets!如果我要使用模板,像这样:
template<class L>
class ListenerManager
{
virtual void add_listener(L listener);
virtual void remove_listener(L listener);
};
...但是我有许多不同的侦听器类型,比如ListenerA 和ListenerB,那么我是否需要在实现中对每种类型进行专门化?
【问题讨论】:
-
en.wikipedia.org/wiki/Template%20(C++) 模板 - 类似于泛型但不那么损坏。
-
仅仅因为您正在编写 C++ 并不意味着您必须在任何地方都使用下划线! CamelCase 也很好
-
我更喜欢下划线:)
标签: java c++ code-translation