我已经清楚地一直停留在Java的土地太久...是否有可能做下面的Java代码的C++相当于:C++泛型列表分配
interface Foo {}
class Bar implements Foo {}
static List<Foo> getFoo() {
return new LinkedList<Foo>();
}
static List<Bar> getBar() {
return new LinkedList<Bar>();
}
List<? extends Foo> stuff = getBar();
其中foo是一个子类酒吧。
所以在C++ ....
std::list<Bar> * getBars()
{
std::list<Bar> * bars = new std::list<Bar>;
return bars;
}
std::list<Foo> * stuff = getBars();
希望是有道理....
您确定这适用于Java吗?因为我刚刚检查过,并不是因为Java不支持协变泛型。此外,这只有在Bar'是Foo的子类时才有意义。 – 2010-04-30 12:15:05
正确。我的错。我现在纠正了代码片段。 – S73417H 2010-04-30 16:14:49