- #include <iostream> 
- #include <string> 
-   
- void buyCoffee(double& totSmall, double& totMedium, double& totLarge)  
- { 
-     totSmall = 5; 
-     totMedium = 10; 
-     totLarge = 15; 
- } 
-   
- void print(const std::string& header, double totalSmall, double totalMedium, double totalLarge) 
- { 
-     std::cout << header << "\n"; 
-     std::cout << "totalSmall = " << totalSmall 
-         << ", totalMedium = " << totalMedium 
-         << ", totalLarge = " << totalLarge << "\n"; 
- } 
-   
- int main()  
- { 
-     // This uses explicit references as you had in your example with 
-     // a correction to the second and third variables 
-     { 
-         double totalSmall = 0, totalMedium = 0, totalLarge = 0; 
-   
-         print("Before: ", totalSmall, totalMedium, totalLarge); 
-   
-         double& totSmall = totalSmall, & totMedium = totalMedium, & totLarge = totalLarge; 
-         buyCoffee(totSmall, totMedium, totLarge); 
-   
-         print("After: ", totalSmall, totalMedium, totalLarge); 
-     } 
-   
-     // This just passes the variables to the function 
-     // Since the function accepts them by reference it modifies 
-     // the original variable inside the function 
-     { 
-         double totalSmall = 0, totalMedium = 0, totalLarge = 0; 
-   
-         print("Before: ", totalSmall, totalMedium, totalLarge); 
-   
-         buyCoffee(totalSmall, totalMedium, totalLarge); 
-   
-         print("After: ", totalSmall, totalMedium, totalLarge); 
-     } 
- } 
-   
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKdm9pZCBidXlDb2ZmZWUoZG91YmxlJiB0b3RTbWFsbCwgZG91YmxlJiB0b3RNZWRpdW0sIGRvdWJsZSYgdG90TGFyZ2UpIAp7CiAgICB0b3RTbWFsbCA9IDU7CiAgICB0b3RNZWRpdW0gPSAxMDsKICAgIHRvdExhcmdlID0gMTU7Cn0KCnZvaWQgcHJpbnQoY29uc3Qgc3RkOjpzdHJpbmcmIGhlYWRlciwgZG91YmxlIHRvdGFsU21hbGwsIGRvdWJsZSB0b3RhbE1lZGl1bSwgZG91YmxlIHRvdGFsTGFyZ2UpCnsKICAgIHN0ZDo6Y291dCA8PCBoZWFkZXIgPDwgIlxuIjsKICAgIHN0ZDo6Y291dCA8PCAidG90YWxTbWFsbCA9ICIgPDwgdG90YWxTbWFsbAogICAgICAgIDw8ICIsIHRvdGFsTWVkaXVtID0gIiA8PCB0b3RhbE1lZGl1bQogICAgICAgIDw8ICIsIHRvdGFsTGFyZ2UgPSAiIDw8IHRvdGFsTGFyZ2UgPDwgIlxuIjsKfQoKaW50IG1haW4oKSAKewogICAgLy8gVGhpcyB1c2VzIGV4cGxpY2l0IHJlZmVyZW5jZXMgYXMgeW91IGhhZCBpbiB5b3VyIGV4YW1wbGUgd2l0aAogICAgLy8gYSBjb3JyZWN0aW9uIHRvIHRoZSBzZWNvbmQgYW5kIHRoaXJkIHZhcmlhYmxlcwogICAgewogICAgICAgIGRvdWJsZSB0b3RhbFNtYWxsID0gMCwgdG90YWxNZWRpdW0gPSAwLCB0b3RhbExhcmdlID0gMDsKCiAgICAgICAgcHJpbnQoIkJlZm9yZTogIiwgdG90YWxTbWFsbCwgdG90YWxNZWRpdW0sIHRvdGFsTGFyZ2UpOwoKICAgICAgICBkb3VibGUmIHRvdFNtYWxsID0gdG90YWxTbWFsbCwgJiB0b3RNZWRpdW0gPSB0b3RhbE1lZGl1bSwgJiB0b3RMYXJnZSA9IHRvdGFsTGFyZ2U7CiAgICAgICAgYnV5Q29mZmVlKHRvdFNtYWxsLCB0b3RNZWRpdW0sIHRvdExhcmdlKTsKCiAgICAgICAgcHJpbnQoIkFmdGVyOiAiLCB0b3RhbFNtYWxsLCB0b3RhbE1lZGl1bSwgdG90YWxMYXJnZSk7CiAgICB9CgogICAgLy8gVGhpcyBqdXN0IHBhc3NlcyB0aGUgdmFyaWFibGVzIHRvIHRoZSBmdW5jdGlvbgogICAgLy8gU2luY2UgdGhlIGZ1bmN0aW9uIGFjY2VwdHMgdGhlbSBieSByZWZlcmVuY2UgaXQgbW9kaWZpZXMKICAgIC8vIHRoZSBvcmlnaW5hbCB2YXJpYWJsZSBpbnNpZGUgdGhlIGZ1bmN0aW9uCiAgICB7CiAgICAgICAgZG91YmxlIHRvdGFsU21hbGwgPSAwLCB0b3RhbE1lZGl1bSA9IDAsIHRvdGFsTGFyZ2UgPSAwOwoKICAgICAgICBwcmludCgiQmVmb3JlOiAiLCB0b3RhbFNtYWxsLCB0b3RhbE1lZGl1bSwgdG90YWxMYXJnZSk7CgogICAgICAgIGJ1eUNvZmZlZSh0b3RhbFNtYWxsLCB0b3RhbE1lZGl1bSwgdG90YWxMYXJnZSk7CgogICAgICAgIHByaW50KCJBZnRlcjogIiwgdG90YWxTbWFsbCwgdG90YWxNZWRpdW0sIHRvdGFsTGFyZ2UpOwogICAgfQp9Cg==