Jump to content


Photo

Classes & Collections


  • Please log in to reply
2 replies to this topic

#1 Max_Payne

Max_Payne
  • Members
  • 5 posts
  • Location:Lost in an Island with Claire

Posted 11 December 2007 - 06:21 AM

***Header Files:

Point.h
#pragma once

#include <iostream>
using namespace std;

class Point
{
private:
	int x;
	int y;

public:
	Point(void);
	Point( int x, int y );
	Point( const Point &xPoint );
	~Point(void);

	void setX( int x );
	int getX() const;

	void setY( int y );
	int getY() const;

	Point & operator = ( const Point &xPoint );

	bool includes( int cord_X, int cord_Y ) const;

	void draw() const;
};


PointCollection.h
#pragma once

#include "Point.h"

const int MAX = 100;

class PointCollection
{
private:
	Point pts[ MAX ];
	int quantity;

public:
	PointCollection( void );
	PointCollection( const PointCollection &xPointCollection );
	~PointCollection( void );

	// To know how many Points are
	// ..in the collection
	int size() const; 

	PointCollection operator = ( const PointCollection &xPointCollection );
	
	Point &operator[]( int index );
	const Point &operator[]( int index ) const;

	bool isFull() const;
	bool isEmpty() const;

	bool includes( const Point &xPoint ) const;
	int indexOf( const Point &xPoint ) const;
};

////////////////////////////////////////////////////////////////////////

***Source Files:

Point.cpp
#include "Point.h"

Point::Point( void )
{
	this->x = 0;
	this->y = 0;
}

Point::Point( int x, int y )
{
	this->x = x;
	this->y = y;
}

Point::Point( const Point &xPoint )
{
	this->x = xPoint.x;
	this->y = xPoint.x;
}

Point::~Point( void ){} // Destructor

//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

void Point::setX( int x ) // set X
{
	this->x = x;
}

void Point::setY( int y ) // set Y
{
	this->y = y;
}


int Point::getX() const // get X
{
	return ( this->x );
}

int Point::getY() const // get Y
{
	return ( this->y );
}

//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Point &Point::operator = ( const Point &xPoint )
{
	this->x = xPoint.x;
	this->y = xPoint.y;

	return ( *this );
}

bool Point::includes( int cord_X, int cord_Y ) const
{
	return ( this->x == cord_X && this->y == cord_Y );
}

void Point::draw() const
{
	cout << '.';
}


PointCollection.cpp
#include "PointCollection.h"

PointCollection::PointCollection( void )
{
	this->quantity = 0;
}

PointCollection::PointCollection( const PointCollection &xPointCollection )
{
	this->quantity = xPointCollection.quantity;

	for ( int i = 0; i < this->quantity; i++ )
		( this->pts )[ i ] = ( xPointCollection.pts )[ i ];
}

PointCollection::~PointCollection( void ) {}

//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

int PointCollection::size() const
{
	return ( this->quantity );
}

//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Point &PointCollection::operator []( int index )
{
	return ( ( this->pts )[ index ] );
}

const Point &PointCollection::operator []( int index ) const
{
	return ( ( this->pts )[ index ] );
}

//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

PointCollection PointCollection::operator =( const PointCollection &xPointCollection )
{
	this->quantity = xPointCollection.quantity;

	for ( int i = 0; i < this->quantity; i++ )
		( this->pts )[ i ] = ( xPointCollection.pts )[ i ];

	return ( *this );
}

//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

bool PointCollection::isFull() const
{
	return ( this->quantity == MAX );
}

bool PointCollection::isEmpty() const
{
	return ( this->quantity == 0 );
}

//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

bool Point::includes( const Point &xPoint ) const
{
	bool thisOne = false;

	for ( int i = 0; i < this->quantity && ! thisOne; i++ )
	{
		if ( ( *this )[ i ] == xPoint )
			thisOne = true;
	}

	return ( thisOne );
}

int PointCollection::indexOf( const Point &xPoint ) const
{
	int index = -1;

	for ( int i = 0; i < this->quantity && index == -1; i++ )
	{
		if ( ( *this )[ i ] == xPoint )
			index = i;
	}

	return ( index );
}


Main.cpp
#include "PointCollection.h"

int main ()
{
	Point p1( 1, 1 ), p2( p1 );

	p1.draw();
	cout << "\n\n";

	if ( p1.includes( 1, 1 ) == true )
		cout << "Point 1 & 2 are Equal" << "\n\n";
	else
		cout << "Point 1 & 2 are NOT Equal" << "\n\n";

	system("PAUSE");
	return 0;

} // end main




This is the Error I'm Getting:
------ Build started: Project: Project_Dibujo, Configuration: Debug Win32 ------
Compiling...
Point.cpp
PointCollection.cpp
c:\documents and settings\mpayne007\my documents\visual studio 2005\projects\project_dibujo\project_dibujo\pointcollection.cpp(85) : error C2511: 'bool Point::includes(const Point &) const' : overloaded member function not found in 'Point'
c:\documents and settings\mpayne007\my documents\visual studio 2005\projects\project_dibujo\project_dibujo\point.h(7) : see declaration of 'Point'
c:\documents and settings\mpayne007\my documents\visual studio 2005\projects\project_dibujo\project_dibujo\pointcollection.cpp(103) : error C2784: 'bool std::operator ==(const std::allocator<_Ty> &,const std::allocator<_Other> &) throw()' : could not deduce template argument for 'const std::allocator<_Ty> &' from 'const Point'
c:\program files\microsoft visual studio 8\vc\include\xmemory(174) : see declaration of 'std::operator =='
c:\documents and settings\mpayne007\my documents\visual studio 2005\projects\project_dibujo\project_dibujo\pointcollection.cpp(103) : error C2784: 'bool std::operator ==(const std::istreambuf_iterator<_Elem,_Traits> &,const std::istreambuf_iterator<_Elem,_Traits> &)' : could not deduce template argument for 'const std::istreambuf_iterator<_Elem,_Traits> &' from 'const Point'
c:\program files\microsoft visual studio 8\vc\include\xutility(2143) : see declaration of 'std::operator =='
c:\documents and settings\mpayne007\my documents\visual studio 2005\projects\project_dibujo\project_dibujo\pointcollection.cpp(103) : error C2784: 'bool std::operator ==(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)' : could not deduce template argument for 'const std::reverse_iterator<_RanIt> &' from 'const Point'
c:\program files\microsoft visual studio 8\vc\include\xutility(1826) : see declaration of 'std::operator =='
c:\documents and settings\mpayne007\my documents\visual studio 2005\projects\project_dibujo\project_dibujo\pointcollection.cpp(103) : error C2784: 'bool std::operator ==(const std::pair<_Ty1,_Ty2> &,const std::pair<_Ty1,_Ty2> &)' : could not deduce template argument for 'const std::pair<_Ty1,_Ty2> &' from 'const Point'
c:\program files\microsoft visual studio 8\vc\include\utility(60) : see declaration of 'std::operator =='
c:\documents and settings\mpayne007\my documents\visual studio 2005\projects\project_dibujo\project_dibujo\pointcollection.cpp(103) : error C2676: binary '==' : 'const Point' does not define this operator or a conversion to a type acceptable to the predefined operator
Generating Code...
Compiling...
Main_.cpp
Generating Code...
Build log was saved at "file://c:\Documents and Settings\MPayne007\My Documents\Visual Studio 2005\Projects\Project_Dibujo\Project_Dibujo\Debug\BuildLog.htm"
Project_Dibujo - 6 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Posted Image

#2 CodeCat

CodeCat

    Half fox, half cat, and all insanity!

  • Members
  • 3,768 posts
  •  Fighting for equality of all species

Posted 11 December 2007 - 01:20 PM

In PointCollection.cpp:
bool Point::includes( const Point &xPoint ) const
Typo. Should be PointCollection::includes instead.
CodeCat

Posted Image
Posted Image

#3 Max_Payne

Max_Payne
  • Members
  • 5 posts
  • Location:Lost in an Island with Claire

Posted 11 December 2007 - 04:14 PM

Thank you .. I have fixed the problem with the info you gave me. :thumbsupsmiley:
Posted Image




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users