1. ## 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

2. >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();

3. THANKS A BUNCH!!! I'll try it.

4. ## 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:raw() //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!!!

5. 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

Im going to attach both files to this so someone can try to get it to work...

6. here's the test file

7. 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.