I am getting the following errors and I am pulling my hair out.  If someone 
could help I would greatly appreciate it.  As I don't know where this is coming 
from, I included the files I think are relavant but who knows?  Each class has 
a header and a cpp file.

window.cpp(14) : error C2228: left of '.red' must have class/struct/union
window.cpp(14) : error C2228: left of '.green' must have class/struct/union
window.cpp(14) : error C2228: left of '.blue' must have class/struct/union


***************** widget.h ************

#ifndef WIDGET_H
        #define WIDGET_H
#include "myColor.h"

class widget {
public:
        widget();
        myColor backColor();
        void setBackColor (const myColor a_color);
        bool wasBackColorSet;
        widget *parent;
                // The widet in which Current resides (emmediate parent).
        widget *rootWidget();
                // The window that is closest to Current up the tree.
                // This is the widget which has the callbacks, and to which
                // positioning and sizing is relative.
        myColor backColorImp;
                // Implementation so `backColor' can be calculated.
                // Really want to use references, not value, here.
};

#endif

***************  widget.cpp  ***********
// widget.cpp

myColor widget::backColor() {
        if (wasBackColorSet) {
                return backColorImp;
        } else {
                if (parent == NULL) {
                        return defaultBackColor;
                } else {
                        return parent.backColor();
                };
        };
};


**********************  window.h  ************
#ifndef WINDOW_H
        #define WINDOW_H
#include "widget.h"

class window : public widget {
public:
        window();
};

#endif


********************  window.cpp************
#include <iostream>
#include <typeInfo>
#include <GL\glut.h>
#include "window.h"
#include "myColor.h"

using namespace std;

window::window() : widget () {
                // Initialize Current by calling precursor and then set
                // up some openGL states.
        cout << "Call constructor for " << typeid (this).name() << endl;
                // Performs certain window initalizations
        glClearColor (backColor.red, backColor.green, backColor.blue, 0.0);
        glColor3f (foreColor.red, foreColor.green, foreColor.blue);
        glMatrixMode (GL_PROJECTION);       // set "camera shape"
        glLoadIdentity ();                  // clearing the viewing matrix
};



****************************  myColor.h  ****************
#ifndef MY_COLOR_H
        #define MY_COLOR_H

class myColor {
public:
        myColor();
        myColor (float aRed, float aGreen, float aBlue);
        float red;
        float green;
        float blue;
        void set (float aRed, float aGreen, float aBlue);
};

static myColor White (1.0, 1.0, 1.0);
static myColor Black (0.0, 0.0, 0.0);
static myColor Red (1.0, 0.0, 0.0);
static myColor Green (0.0, 1.0, 0.0);
static myColor Blue (0.0, 0.0, 1.0);

#endif


***********************  myColor.cpp  ***************
#include "myColor.h"

myColor::myColor () {
                // Default color is white
        set (0.0, 0.0, 0.0);
};




Reply via email to