FunctionX - Practical Learning Logo

Anonymous Objects

An anonymous class is one that doesn't have a name. In the following example, both structures inside the TRectangle union are anonymous classes:

//---------------------------------------------------------------------------

#include <iostream>

#include <conio>

using namespace std;

#pragma hdrstop



//---------------------------------------------------------------------------

#pragma argsused

// This rectangle can be identified by EITHER its location OR its dimensions

union TRectangle

{

    struct // Location

    {

        int x1;

        int y1;

        int x2;

        int y2;

    };

    struct // Dimensions

    {

        double Length;

        double Height;

    };

};

//---------------------------------------------------------------------------

int main(int argc, char* argv[])

{

    TRectangle Recto;

    char Choice;



    cout << "You want to identify your rectangle by "

         << "its location or its dimensions?";

    cout << "\n1 - Location";

    cout << "\n2 - Dimension";

    cout << "\nEnter your choice: ";

    cin >> Choice;



    if( Choice == '1' )

    {

        cout << "\nEnter the location of the rectangle on a "

             << "Cartesian coordinate system\n";

        cout << "First point\n";

        cout << "X coordinate: "; cin >> Recto.x1;

        cout << "Y coordinate: "; cin >> Recto.y1;

        cout << "Second point\n";

        cout << "X coordinate: "; cin >> Recto.x2;

        cout << "Y coordinate: "; cin >> Recto.y2;

        cout << "\nThe rectangle spans from A("

             << Recto.x1 << ", " << Recto.y1 << ") to B("

             << Recto.x2 << ", " << Recto.y2 << ").\n";

    }

    else if( Choice == '2' )

    {

        cout << "Enter the dimensions of the rectangle\n";

        cout << "Length: "; cin >> Recto.Length;

        cout << "Height: "; cin >> Recto.Height;

        cout << "\nDimensions of the rectangle";

        cout << "\nLength: " << Recto.Length;

        cout << "\nHeight: " << Recto.Height << endl;

    }

    else

        cout << "\nInvalid Choice";



    return 0;

}

//---------------------------------------------------------------------------

Here is an example of running the program:
You want to identify your rectangle by its location or its dimensions?

1 - Location

2 - Dimension

Enter your choice: 1



Enter the location of the rectangle on a Cartesian coordinate system

First point

X coordinate: -4

Y coordinate: 2

Second point

X coordinate: 5

Y coordinate: 1



The rectangle spans from A(-4, 2) to B(5, 1).



Press any key to continue...


C++ Tutorial Copyright 2001 FunctionX, Inc.