I sentiment this post exactly! Use an Aussie credit card and ask them to charge in USD!!! If need be, even open a bank account that doesn't charge foreign transaction fees before departing just for this alone, it does make a big difference and choose one that has favourable exchange rates over others. From experience, I can recommend Citibank.
(I also use this account/card whenever I travel overseas, cruising or not). I have not been able to find a bank that's been able to challenge them in any of the above yet, even on exchange rates. If someone can prove me wrong, please do! The alternative would be to find a great exchange rate before boarding and purchase US dollars and settle the account via cash onboard before disembarkation.