Может ли функция вернуть объект в c ++? Если да, то как? Если нет, то почему?

Это параметр верхнего ограниченного типа. Нижние границы создаются с помощью super, что вы действительно не можете сделать для параметра типа. У вас не может быть параметра нижнего ограниченного типа .

И это будет иметь значение, если вы, например, хотите передать List. Итак, для следующих двух методов:

public  void doSomething(List foos) {}
public void doSomething(List foo) {}

И для данного класса:

class Bar extends Foo { }

Следующий вызов метода:

List list = new ArrayList();
doSomething(list);

равен действителен для первого метода, но не для второго метода. Второй метод терпит неудачу, потому что List не является супер-типом List, хотя Foo является супер-типом Bar. Тем не менее, первый метод проходит, потому что параметр типа T будет выведен как Bar.

-8
задан Anupam Das 11 May 2015 в 16:09
поделиться