In reply to zz8318:
You didn’t say what you wanted the default to be. The only reasonable default in the case is null. Then inside you can construct a new item if it is null.
task send(int num = 1, my_item item = null);
if (item == null) item = new(); ...
...
endtask