------------------------------------------------------------------------------
MC logo
Default Parameters
[^] Code Examples
------------------------------------------------------------------------------
<<C++ Functions def2.cc Function Overloading>>
#include <iostream>

using namespace std;

// Print a row with a starting and ending character, with a specified number
// of middle characters between them.
void row(char ends, int num_middle, char middle) 
{
        cout << ends;
        for(int m = num_middle; m--;) cout << middle;
        cout << ends << endl;
}

// Draw a box with text.
void box(int width = 9, int height = 5, bool fill = false)
{
        // Top row
        row('+', width-2, '-');

        // Draw internal rows.
        for(int m = height-2; m--;) 
                row('|', width-2, fill ? '#' : ' ');

        // Final row.
        row('+', width-2, '-');
}

// Box driver.
int main()
{
        box();
        cout << endl;
        box(4);
        cout << endl;
        box(15, 7);
        cout << endl;
        box(3,3,true);
}

Default values may be given to parameteters. These are used if the parameter is not sent. The rules require: So these are illegal:

void joe(int x = 5, double d) { ... }
fred(10, , 20);

Reading: pp. 125-144 exc. arrays
<<C++ Functions Function Overloading>>