quaternion.h: 15: error: field 'v is of an incomplete type
Hello! I am stuck on an error that I cannot solve.
Below is my code:
#ifndef QUATERNION_H #define QUATERNION_H #include "vec3.h" class Vec3; class Quaternion { public: Quaternion(Vec3 v); Quaternion(double w, Vec3 v); Vec3 v; <--------------------------This is where the error is :( double scalar; Quaternion operator *(Quaternion s); Quaternion conjugate(); }; #endif
My Vec.h looks like this:
#ifndef VEC3_H #define VEC3_H #include "point.h" #include "quaternion.h" #include <math.h> class Quaternion; class Vec3 { friend ofstream& operator <<(ofstream& output, const Vec3& p); friend ifstream& operator >>(ifstream& input, Vec3& p); public: Vec3(); Vec3(double _x, double _y); Vec3(double _x, double _y, double _z); double x,y,z; //Operators Vec3 operator -(Vec3 a) const; Vec3 operator /(double s) const; Vec3 operator *(double s) const; Vec3 operator *(Quaternion q) const; // Used to do vector Vec3 addition Vec3 operator +(Vec3 a) const; Point operator +(Point a) const; Vec3& operator =(Point a); Vec3 crossProduct(Vec3 v1); // Itself cross v1 double dotProduct(Vec3 v); double length(); void normalize(); }; #endif
Thanks for the help again =)
c ++ incomplete-type
Aero
source share