Proste pytanie - co jest nie tak? Wiem, że mogę umieścić klasy w dwóch plikach nagłowkowych, wiem też, że tak powinno się robić, ale kazano na uczelnie zrobić w jednym, to robie w jednym.
#include <iostream>
using namespace std;
class Vector;
class Point {
private:
double _x;
double _y;
public:
void move (Vector &V) volatile {
_x = V._b._x - V._a._x + _x;
_y = V._b._y - V._a._y + _y;
}
};
class Vector {
private:
Point _a;
Point _b;
public:
friend class Point;
};
int main() {
// your code goes here
return 0;
}
prog.cpp: In member function ‘void Point::move(Vector&) volatile’:
prog.cpp:12:9: error: invalid use of incomplete type ‘class Vector’
_x = V._b._x - V._a._x + _x;
^
prog.cpp:4:7: error: forward declaration of ‘class Vector’
class Vector;
^
prog.cpp:12:19: error: invalid use of incomplete type ‘class Vector’
_x = V._b._x - V._a._x + _x;
^
prog.cpp:4:7: error: forward declaration of ‘class Vector’
class Vector;
^
prog.cpp:13:9: error: invalid use of incomplete type ‘class Vector’
_y = V._b._y - V._a._y + _y;
^
prog.cpp:4:7: error: forward declaration of ‘class Vector’
class Vector;
^
prog.cpp:13:19: error: invalid use of incomplete type ‘class Vector’
_y = V._b._y - V._a._y + _y;
^
prog.cpp:4:7: error: forward declaration of ‘class Vector’
class Vector;
^