Problem; Each "Square" appears to be "whit" even though they shouldn't be. Why? main.cpp --------------------- #include "main.h" #include "Board.h" #include #include "stdio.h" using namespace std; int main(void) { Board* b = new Board(); printf("return: %i\n",b->foobar(4)); b->initialize(); if (b->isWhite(1,1)) { printf("1x1 is White\n"); } if (b->isWhite(1,2)) { printf("1x2 is White\n"); } if (b->isWhite(2,1)) { printf("2x1 is White\n"); } delete (b); return 0; } Board.h ----------------------------------- #include "Square.h" class Board { public: Square grid[8][8]; Board(void); ~Board(void); int foobar(int a); void initialize(void); bool isWhite(int x, int y); }; Board.cpp ----------------------------------- #include "Board.h" Board::Board(void) { } Board::~Board(void) { } int Board::foobar(int a) { return 1+a; } void Board::initialize(void) { for (int i = 0; i < 8; i++) { for (int j = 0; j < 8; j++) { if (i%2 == 0) { grid[i][j] = new Square(false); // for testing purposes, both are set to "black" right now. } else { grid[i][j] = new Square(false); } } } } bool Board::isWhite(int x, int y) { return grid[x][y].colour(); } Square.h ----------------------------------- #pragma once class Square { private: bool Pcolour; public: Square(void); Square(bool colour); ~Square(void); bool colour(void); void setColour(bool colour); }; Square.cpp ----------------------------------- #include "Square.h" Square::Square(void) { } Square::Square(bool colour) { //this->_colour = l_colour; Pcolour = colour; } Square::~Square(void) { Pcolour = false; } bool Square::colour(void) { return Pcolour; }