what wrong with my program...

I got a question is I not confirm my code. I use object – oriental and OpenGL concept to draw a triangle. I got a Position class which store 3 float variable (x, y, z). Then I use the Triangle class which contain of array of 3 Position which contain the coordinate of the 3 vertices of Triangle. I use Driver.cpp to test my program (main class to control everything). Following is my code to test the program:

//Driver.cpp
#include <windows.h>
#include "Globals.h"
#include "OpenGLScene.h"
#include "MyOpenGLScene.h"
int WINAPI WinMain(HINSTANCE      hInstance,            // Instance
                  HINSTANCE      hPrevInstance,            // Previous Instance
                  LPSTR lpCmdLine,                  // Command Line Parameters
                  int nCmdShow)                  // Window Show State
{
      // Position accept 3 variable(x, y, z)
      Position* p1 = new Position(0.0f, 1.0f, -6.0f);
      // Position accept 3 variable(x, y, z)
      Position* p2 = new Position(-1.0f, -1.0f, -6.0f);
            // Position accept 3 variable(x, y, z)
      Position* p3 = new Position(1.0f, -1.0f, -6.0f);
      
      // because 3 Position for draw a Triangle
      Position* p[] = {p1, p2, p3};
      
      // Trianlge to store array of Position
      Triangle* myTriangle = new Triangle(*p);
      
      // add Triangle
      myStage->addTriangle(myTriangle);
      
      //run the code
      OpenGLScene* myStage = new MyOpenGLScene("Stage 1",800,600,16,0);
      myStage->start();
      return 0;
}

when I test addTriangle function then got this kind of error:
error C2440: '=' : cannot convert from 'class Position *(__thiscall Triangle::*)(void)' to 'class Position *' There is no context in which this conversion is possible

error C2440: '=' : cannot convert from 'float (__thiscall Position::*)(void)' to 'float'
        There is no context in which this conversion is possible

error C2440: '=' : cannot convert from 'float (__thiscall Position::*)(void)' to 'float'
        There is no context in which this conversion is possible

error C2440: '=' : cannot convert from 'float (__thiscall Position::*)(void)' to 'float'
        There is no context in which this conversion is possible

I think my code are stupid and then I don’t know how to make it simple and fix the error. Can someone check for me. Thanks!

Following is my other code:
// Triangle.cpp file
#include "MyOpenGLScene.h"

int i=0;
Triangle *triangle[50];
 
MyOpenGLScene::MyOpenGLScene(char* title, int width, int height, int bits, bool fullscreenflag):OpenGLScene(title, width, height, bits, fullscreenflag) { }
void MyOpenGLScene::addTriangle(Triangle *T) {
 triangle[i] = aTriangle[1];
 i++;
}
 
void MyOpenGLScene::DrawTriangle(Triangle *T) {
 Position *vertex;
 float vx, vy, vz;
 glBegin(GL_TRIANGLES);
  for(int i=0; i<3; i++) {
   vertex = T->getVertices;
   vx = vertex->getX;
   vy = vertex->getY;
   vz = vertex->getZ;
   glColor3f(1.0f,1.0f,1.0f);
   glVertex3f(vx, vy, vz);
  }
 glEnd();
}
 
int MyOpenGLScene::DrawGLScene() {
 this->DrawTriangle(T);
 return 0;
}
 
// Triangle.cpp file
#include "Triangle.h"

Triangle::Triangle(Position position[3]):red(1.0), green(1.0), blue(1.0) {
 this->position[0] = position[0];
 this->position[1] = position[1];
 this->position[2] = position[2];
}
void Triangle::setColor(float red, float green, float blue) {
 this->red = red;
 this->green = green;
 this->blue = blue;
}
float Triangle::getRed() {
 return red;
}
float Triangle::getGreen() {
 return green;
}
float Triangle::getBlue() {
 return blue;
}
Position* Triangle::getVertices() {
 return position;
}
// Position.cpp file
Position::Position() { }
Position::Position(float x, float y, float z) {
 this->x = x;
 this->y = y;
 this->z = z;
}
float Position::getX() {
 return x;
}
float Position::getY() {
 return y;
}
float Position::getZ() {
 return z;
}
 
From: Sally
sally1980Asked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

_ys_Commented:
Start with this:

>> Triangle* myTriangle = new Triangle(*p);
Triangle* myTriangle = new Triangle (p);  // no '*'
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
SteHCommented:
You use at some places Position* and later you need only Position.
To get an instance of Position use
Position p1(1,1,-6);
Now p needs to be declared as
Position p[3] and then you can continue with the tip of _ys_.
0
tinchosCommented:
No comment has been added lately, so it's time to clean up this TA.
I will leave the following recommendation for this question in the Cleanup topic area:

Accept: _ys_ {http:#9679161}

Please leave any comments here within the next seven days.
PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!

Tinchos
EE Cleanup Volunteer
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
C++

From novice to tech pro — start learning today.