-
Help Me
HELP!!!
Plz fix my code someone. I'm a noob to C++ and cant figure out why im getting errors. Im using BloodShed.
Code:
#include <winbgim.h> //I got this online. If u need it ask me.
class Point
{
public:
Point(int x, int y, int z): X(x), Y(y), Z(z){}
~Point(){}
long int SetX(int x){X=x;}
long int SetY(int y){Y=y;}
long int SetZ(int z){Z=z;}
long int GetX(){return X;}
long int GetY(){return Y;}
long int GetZ(){return Z;}
long int NewX();
long int NewY();
private:
int X,Y,Eye,Size,Scale,Z,OldX,OldY,MaxX,MaxY;
};
long Point::NewY()
{
MaxY=600;
OldY=Y;
Eye =MaxY/6;
int Size=1-Eye/Z;
Y=OldY-Size*(OldY-Eye);
return Y;
}
long Point::NewX()
{
MaxX=600;
OldX=X;
Scale=MaxX/6;
Size=1-Scale/Z;
X=OldX-Size*OldX;
return X;
}
class Line
{
public:
Line(int x,int y,int z,int a,int b,int w):X(x),Y(y),Z(z),A(a),B(b),W(w){}
~Line(){}
void Draw();
Point P1(int x,int y,int z){x=X;y=Y;z=Z;}
Point P2(int a,int b,int w){a=A;b=B;w=W;}
private:
int A;
int B;
int X;
int Y;
int Z;
int W;
};
void Line:raw()
{
P1.NewX;
P1.NewY;
P2.NewX;
P2.NewY;
moveto(P1.GetX,P1.GetY);
lineto(P2.GetX,P2.GetY);
}
WHATS WRONG
:confused:
Code tags added by Hammer
-
>void Line:raw()
Should be void Line::raw().
>Point P1(int x,int y,int z){x=X;y=Y;z=Z;}
This is wrong. If you want P1 to be initialised, you should do this the same way you initialised the other variables in your class.
>P1.NewX;
NewX is a function, so it should be
P1.NewX();
-
THANKS A BUNCH!!! I'll try it.
-
Still not working!!!
It still doesn't work:
//This is my own 3d header
#include <winbgim.h>
class Point
{
public:
Point(int x, int y, int z): X(x), Y(y), Z(z){}
~Point(){}
long int SetX(int x){X=x;}
long int SetY(int y){Y=y;}
long int SetZ(int z){Z=z;}
long int GetX(){return X;}
long int GetY(){return Y;}
long int GetZ(){return Z;}
long int NewX();
long int NewY();
private:
int X,Y,Eye,Size,Scale,Z,OldX,OldY,MaxX,MaxY;
};
long Point::NewY()
{
MaxY=600;
OldY=Y;
Eye =MaxY/6;
int Size=1-Eye/Z;
Y=OldY-Size*(OldY-Eye);
return Y;
}
long Point::NewX()
{
MaxX=600;
OldX=X;
Scale=MaxX/6;
Size=1-Scale/Z;
X=OldX-Size*OldX;
return X;
}
class Line
{
public:
Line(int x,int y,int z,int a,int b,int w):X(x),Y(y),Z(z),A(a),B(b),W(w){}
~Line(){}
void Draw();
Point P1(int x,int y,int z){x(X);y(Y);z(Z);}
Point P2(int a,int b,int w){a(A);b(B);w(W);}
private:
int A;
int B;
int X;
int Y;
int Z;
int W;
};
void Line::Draw() //Thats A : D BUT IT SHOWS AS SMILEY
{
P1.NewX();
P1.NewY();
P2.NewX();
P2.NewY();
moveto(P1.GetX,P1.GetY);
lineto(P2.GetX,P2.GetY);
} //End of 3d.h
This is the Test program iv'e made:
#include <IOSTREAM>
#include <3d.h> //File above
int main()
{
initwindow(600,600);
Line A(20,20,1,30,40,5);
closegraph();
return 0;
} //End
I get the following errors:
2 c:\mydocu~1\ryan_p~1.net\3d-cal~1\box.cpp
C:\DEV-C_~1\INCLUDE\3d.h: In method `class Point Line::P1(int, int, int)':
45 c:\dev-c_~1\include\3d.h
`x' cannot be used as a function
45 c:\dev-c_~1\include\3d.h
`y' cannot be used as a function
45 c:\dev-c_~1\include\3d.h
`z' cannot be used as a function
46 c:\dev-c_~1\include\3d.h
`a' cannot be used as a function
46 c:\dev-c_~1\include\3d.h
`b' cannot be used as a function
46 c:\dev-c_~1\include\3d.h
`w' cannot be used as a function
59 c:\dev-c_~1\include\3d.h
sorry, not implemented: `overload' not supported by dump_expr
59 c:\dev-c_~1\include\3d.h
request for member `NewX' in `{error}', which is of non-aggregate type `{unknown type}'
60 c:\dev-c_~1\include\3d.h
sorry, not implemented: `overload' not supported by dump_expr
60 c:\dev-c_~1\include\3d.h
request for member `NewY' in `{error}', which is of non-aggregate type `{unknown type}'
61 c:\dev-c_~1\include\3d.h
sorry, not implemented: `overload' not supported by dump_expr
61 c:\dev-c_~1\include\3d.h
request for member `NewX' in `{error}', which is of non-aggregate type `{unknown type}'
62 c:\dev-c_~1\include\3d.h
sorry, not implemented: `overload' not supported by dump_expr
62 c:\dev-c_~1\include\3d.h
request for member `NewY' in `{error}', which is of non-aggregate type `{unknown type}'
63 c:\dev-c_~1\include\3d.h
sorry, not implemented: `overload' not supported by dump_expr
63 c:\dev-c_~1\include\3d.h
request for member `GetX' in `{error}', which is of non-aggregate type `{unknown type}'
63 c:\dev-c_~1\include\3d.h
sorry, not implemented: `overload' not supported by dump_expr
63 c:\dev-c_~1\include\3d.h
request for member `GetY' in `{error}', which is of non-aggregate type `{unknown type}'
64 c:\dev-c_~1\include\3d.h
sorry, not implemented: `overload' not supported by dump_expr
64 c:\dev-c_~1\include\3d.h
request for member `GetX' in `{error}', which is of non-aggregate type `{unknown type}'
64 c:\dev-c_~1\include\3d.h
sorry, not implemented: `overload' not supported by dump_expr
64 c:\dev-c_~1\include\3d.h
request for member `GetY' in `{error}', which is of non-aggregate type `{unknown type}'
HELP ME!!!
:confused:
-
When i do that i get this error:
Line: Unit: Message:
45 c:\dev-c_~1\include\3d.h only constructors take base
initializers
Im confused
:confused:
Im going to attach both files to this so someone can try to get it to work...
-
-
I think you should study more and then start this project over.
Or just go through each line and spend sometime thinking it through and making sure it does exactly what you intended.