Quisiera hacer un arreglo en C++ de tipo Punto, pero no sé cómo hacerlo.
Este es mi código:
#include <windows.h>
#ifdef __APPLE__
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif
#include <stdlib.h>
#include "Punto.h"
#include "Linea.h"
Punto *vertices[2] = new Punto[2];
void init()
{
glClearColor(0.0, 0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-200, 200, -200, 200);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
vertices[0] = new Punto(10.0, 25.0);
Linea *l = new Linea(p1, p2);
l->dibuja();
delete l;
glFlush();
}
int main(int argc, char *argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//SE INIZIALIZA LAS VARIABLES DE ENTORNO EN UN SOLO BUFFER Y COLOREA RGB
glutInitWindowSize(400, 400);// se define el tamaño de la ventana
glutInitWindowPosition(50,50); // se define las coordenadas inicilaes donde aparacera la ventana
glutCreateWindow("Parcial_1");//crea una ventana y se le coloca una leyenda hola mundo
init(); //Funcion de servicio para inizializar parametros del ambiente grafico
glutDisplayFunc(display); // se define cula es la funcion que redibujara el ambiente grafico
//glutIdleFunc(display);
glutMainLoop();
return 0;
}
Código de Punto.h
#ifndef PUNTO_H
#define PUNTO_H
class Punto
{
public:
double x, y;
public:
Punto(double x, double y);
void dibuja(void);
virtual ~Punto();
protected:
private:
};
#endif // PUNTO_H
Código de Punto.cpp
#include <windows.h>
#include <GL/glut.h>
#include "Punto.h"
Punto::Punto(double x, double y)
{
this->x = x;
this->y = y;
}
void Punto::dibuja(void)
{
glBegin(GL_POINTS);
glVertex2d(x, y);
glEnd();
}
Punto::~Punto()
{
//dtor
}
El error es aquí
Punto *vertices[2] = new Punto[2];
El error que marca es "no maching function for call 'Punto::Punto()'" Y quisiera saber si la incialización de se puede hacer como se hace en Java o C#