Zdravím,
ve zkratce: mám 2 třídy (Point a Ball), každá z nich má *.h a *.cpp soubor a v třídě Ball mám jako private objekt třídy Point. A zde nevím jak mezi sebou provázat hlavičkové soubory... Visual Studio mi hlásí chybu, že třída Point v ball.h není nadefinovaná...
Za každou radu budu nesmírně vděčný, předem díky za odpovědi.
Takhle nějak vypadají jednotlivé soubory:
pro lepší přehlednost v Pastebin:
main.h http://pastebin.com/KSSqBeUB
main.cpp http://pastebin.com/GdcKS2ZV
point.h http://pastebin.com/hHaQLeqA
point.cpp http://pastebin.com/dt5WfNJD
ball.h http://pastebin.com/7WLmDmeB
ball.cpp http://pastebin.com/FWJzma6J
main.h
#pragma once
#include <allegro5\allegro.h>
#include <allegro5\allegro_primitives.h>
#include <allegro5\allegro_image.h>
#include <allegro5\allegro_font.h>
#include <allegro5\allegro_ttf.h>
#include <allegro5\color.h>
#include <stdio.h>
#include <fstream>
#include <vector>
#include <iostream>
#include <sstream>
#include <string>
#include <math.h>
#include "point.h"
#include "ball.h"
using namespace std;
/*
... nejake dalsi promenne ...
*/
class Point;
class Ball;
void InitBalls(vector<Ball> &b);
void CheckAndMove(Ball &player, vector<Ball> &balls);
void CollideObjects(Ball &player, vector<Ball> &balls);
void EatAFromB(Ball &a, Ball &);
void EatBiggerFromSmaller(Ball &a, Ball &b);
int PointDistance(Point u, Point v);
Point ToPoint(double a, double b);
double RoundInterval(double x);
point.h
#pragma once
#include "main.h"
class Point
{
private:
double x;
double y;
public:
Point();
Point(double x, double y);
double GetX();
double GetY();
void SetX(double a);
void SetY(double a);
double Length();
Point SetPlus(Point a);
Point SetMinus(Point a);
Point SetDevide(double a);
Point SetMultiply(double a);
Point GetPlus(Point a);
Point GetMinus(Point a);
Point GetDevide(double a);
Point GetMultiply(double a);
};
ball.h // zde mi to hlásí "Ball::position, Ball::speed uses undefined class 'Point'"
#pragma once
#include "main.h"
class Point;
class Ball
{
private:
int ID;
double r;
Point position;
Point speed;
public:
Ball();
Ball(int i, Point p, Point s, int r);
void Draw();
void DrawInfo(int x, int y);
void Reset();
void Check();
void Move();
void Kill();
void AddContent(double x);
void AttributedSpeed(Point s);
void SetSpeed(Point s);
double SetR(double x);
double ReduceR(double x);
double GetR();
Point GetSpeed();
Point GetPosition();
Point CalcDirection(int x, int y);
Ball Fart(int x, int y);
bool ISCollide(Ball b);
bool Alive();
};
main.cpp
#include "main.h"
/*
... main a dalsi funkce z main.h
*/
point.cpp
#include "point.h"
/*
... metody z point.h ...
*/
ball.cpp
#include "ball.h"
/*
... metody z ball.h ...
*/