so say i send btc from wallet(a) to wallet(b) and the change to wallet(c) and the fee is 0.0003 i then send btc from wallet(c) to wallet(d) this fee should cover the transaction from wallet(c) to wallet(d) and from wallet a to b&c? hope you can understand what i mean
It's rather hard to follow your explanation, but i think you are correct...
The only thing that seems to be missing in your reasoning is the fact that you have to use the output to address c as input for the transaction between c and d (the one with the very high fee).
So, you have an unspent output that can be spent by AddresAAA, you create a transaction paying somebody with adres AddressBBB, the change of this transaction goes to AdresCCC controlled by your wallet.
So you have one transaction with one input and two outputs (one to the receiver, one to your change address).
By accident, you don't add enough fees...
A CPFP is when you use the unspent output to the change address from transaction1 into ANY transaction, it can be to AdresAAA, or to a new adress AdresDDD, or just use it in the next payment you make to a completely different person. The only thing is that transaction2, using the unspent output to AdressCCC (the change address) has to include sufficient fees for both transaction1 and transaction2
btw: if you use my feechecker, and i detect a low a low fee, you are guided trough a wizard to create a cpfp, so you can try it out to learn more, just go to blockchain.info, pick a couple of unconfirmed transactions, put them into my feechecker untill you find a couple with insufficient fees, click on the CPFP wizard at the bottom, decode the raw, unsigned CPFP transaction and see what the wizard did
https://www.mocacinno.com/page/feechecker