With the high temperature and high altitude at JNB the aircraft sometimes can't carry all the payload (passengers, baggage and cargo) along with the required fuel for the flight due to the take off performance of the airacft at the high weight and high altitude (think thinner air).
Safety has already been mentioned - CX is not going to sacrifice safety and risk running into a low fuel situation (increase fuel burn enroute can happen due to weather deviations, air traffic control, etc.).
That leaves CX with 2 options.
1) Refuel Stop with some delay
2) Bumping passengers or bags, which would mean you have to either fly the next day or connect somewhere along the way to get to HKG.
Pick the option you want.