Actually, we can add just one constructor with default values:
Sample(T d = 0, T u = 0): download(d), upload(u) { }