Question: Are there any specific guidelines of what to do if you get a memory warning? I know that you have to try and kill off objects that aren't required, but if this makes your application inoperable, what other options are there?

An example might be if say the application was Apple's contacts app and the user is editing a person's contact details. What could you do? Stop the edit? close down and jump to the list screen?

Any advice or guidelines would be most appreciated.

Answer: 
Well, the normal practice is to have the same set of default arguments for all translation units. In order to achieve that you obviously have to specify the default arguments in the declaration of the function in the header file.

As for default argument of reference parameter... of course, it is possible. For example

```
extern int i;

void foo(int &r = i);
void bar(const double &r = 0);

```
Must be at method declaration, so that the caller can know what is exactly expected by the function.  

You can do tricks like Alf says but not sure why is it needed. May be you want to take a look at your design of function.