[comp.windows.ms.programmer] C++ Does Allow Identifier Declar & Define

coates@uc780.umd.edu (06/25/91)

/************************************************************************
 *                         LINE.CPP                                     *
 *                                                                      *
 *    Uses POINT.CPP and POINT.H to draw a pixel wide horizontal        *
 *    line across the screen.                                           *            *
 ************************************************************************/


#include <graphics.h>   // declarations for graphics library
#include <conio.h>      // for getch()
#include "point.h"      // declarations for Point and Location classes


// Line class declaration
class Line : public Point
   {
   public:
      Line(int InitX, int InitY);
      void Show(void);
      void DrawLine(int NewX, int NewY);
};


// Line class definition
Line::Line(int InitX, int InitY) : Point(InitX, InitY)   // constructor
   {
};

void Line::Show(void)   // make point visible
   {
   Visible = true;
   putpixel(X, Y, getcolor());
};

void Line::DrawLine(int NewX, int NewY)  // draw horizontal line
   {
   X = NewX;
   Y = NewY;
   while (X != 700)
      {
      X = ++NewX;
      Y = NewY;
      Show();
      }
};


// Line main
int main()
   {
   // initialize the graphics system
   int graphdriver = DETECT, graphmode;
   initgraph(&graphdriver, &graphmode, "d:\\borlandc\\bgi");

   // draw a dot
   Line ALine(1, 150);        // initial X, Y at 1, 150
   ALine.Show();

   // draw  horizontal lines across the screen
   ALine.DrawLine(1, 150);
   ALine.DrawLine(1, 225);
   getch();

   // close graphics routines
   closegraph();

   return (0);
};


**************************************************************************
*                     Elliott Coates, washington dc                      *
*                         coates@uc780.umd.edu                           *
*                             coates@uc780.bitnet                        *
**************************************************************************

coates@uc780.umd.edu (06/25/91)

The Subject: should actually read:
        "C++ Does Allow Identifier Declaration and Definition Simultaneously"

        This is demonstrated by the fragment:

    in main()

                Line ALine(1, 150);

        here ALine is an instantiation of Line. It is here declared
        and defined simultaneously. One could argue that the type 'Line'
        has already been declard, so that everything is kosher. Any other
        mistyped reference to 'Line' or 'ALine' would be flagged by the
        linker.

**************************************************************************
*                     Elliott Coates, washington dc                      *
*                         coates@uc780.umd.edu                           *
*                             coates@uc780.bitnet                        *
**************************************************************************

coates@uc780.umd.edu (06/25/91)

Sorry, I sent the code listing by mistake, but once I discovered it was
sent, I posted the "take note of this" messsge.
Sorry, I sent the code listing by mistake, but once I discovered it was

**************************************************************************
*                     Elliott Coates, washington dc                      *
*                         coates@uc780.umd.edu                           *
*                             coates@uc780.bitnet                        *
**************************************************************************

divo@hp-vcd.HP.COM (Mark Divittorio) (06/25/91)

/ hp-vcd:comp.windows.ms.programmer / coates@uc780.umd.edu / 12:29 am  Jun 25, 1991 /
Sorry, I sent the code listing by mistake, but once I discovered it was
sent, I posted the "take note of this" messsge.
Sorry, I sent the code listing by mistake, but once I discovered it was

**************************************************************************
*                     Elliott Coates, washington dc                      *
*                         coates@uc780.umd.edu                           *
*                             coates@uc780.bitnet                        *
**************************************************************************
----------