I don't think it's possible to do what you want to do - but let others comment before that's your final conclusion.
I suppose it's not possible to changes the adress of a to match the adress of the result, since a has a probably has a constant adress, but can you change everything in a (exluding the actual vector data, the digits, which really not is a part of the object) so that the vector's internal pointer points to the adress as the + results vector's pointer? What is the best way to solve this? What is possible?
I would like the = operator to work quickly and hence not copying everything (including the digits) straight of.
I would also like it if there where some operation or function which did copy another bigint so that everything (including the digits) where duplicated, for example if I write a = b, then b should be duplicated into a, else, if there isn't any way to separate duplicating = from assigning = then a function duplicate or something could be created so you can write a.setto(b) or b.duplicate(a) or similar.
Every suggestion is welcome, I supose this could be solved i a thousand ways, but I have no clue how to fix this. If it seems like there's no good solution then I'm probably gonna have to work with pointers to bigints instead of bigints directly, it will probably not slow it down very much but it's lengthy.