Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Lotux5

#21
¿como uso una funcion de una clase dentro de otra?
#22
Ademas, que vale que se compile pero igualmente no creo que este bien eso de poner un parentesis ya que es como si cada vez que quisieras introducir una variable tuvieras que poner double x();
o int y().

Supongo que el error esta en alguna parte del codigo pero no se donde ya que lo hice igual que la clase Punto y en cambio la clase Punto si me funciona. -.-"
#23
Sí ese era el error.
Ya probé tu solución y si, se compila el Segmento s1();
pero ahora el problema es que si intento hacer algo con ese s1 como por ejemplo asignarle dos puntos: s1.SetS(p1,p2) tampoco me los compila.
Por favor que alguien me ayude, tengo un examen el lunes.
#24
Programación C/C++ / Ayuda con las clases.
19 Enero 2013, 17:11 PM
Alguien me puede decir que le pasa a mi código. Cuando intento crear una variable de tipo Segmento me da error y no se por qué. Además de si alguien ve algo que no está del todo bien que lo diga.

#include <iostream>
#include <cmath>

using namespace std;

class Punto {
    private:
        double ejex, ejey;
    public:
        Punto();
        Punto(double x, double y);
        void SetP(double x, double y);
        double GetX();
        double GetY();
        double distanciacon(Punto b);
};

Punto::Punto(double x, double y)
{
    (*this).ejex=x;
    (*this).ejey=y;
}

Punto::Punto()
{
    (*this).ejex=0;
    (*this).ejey=0;
}

void Punto::SetP(double x, double y)
{
    (*this).ejex=x;
    (*this).ejey=y;
}

double Punto::GetX()
{
    return ejex;
}

double Punto::GetY()
{
    return ejey;
}

double Punto::distanciacon(Punto b)
{

    return sqrt(pow((*this).ejex-b.ejex,2)+pow((*this).ejey-b.ejey,2));
}

class Segmento{
    private:
        Punto p1, p2;

    public:
        Segmento(Punto punto1, Punto punto2);
        void SetS(Punto punto1, Punto punto2);
        Punto GetP1();
        Punto GetP2();
};


Segmento::Segmento(Punto punto1, Punto punto2)
{
    (*this).p1=punto1;
    (*this).p2=punto2;
}

void Segmento::SetS(Punto punto1, Punto punto2)
{
    (*this).p1=punto1;
    (*this).p2=punto2;
}

Punto Segmento::GetP1()
{
    return p1;
}

Punto Segmento::GetP2()
{
    return p2;
}

int main()
{
    Punto p1, p2;
    double x1, x2, y1, y2;
    cout << "Introduce un puntos: ";
    cin >> x1 >> y1;
    cout << "Introduce otro punto: ";
    cin >> x2 >> y2;

    p1.SetP(x1,y1);
    p2.SetP(x2,y2);

    cout << "Primer punto: " << "(" << p1.GetX() << "," << p1.GetY() << ")" << endl;
    cout << "Segundo punto: " << "(" << p2.GetX() << "," << p2.GetY() << ")" << endl;
    cout << "Distancia entre los dos puntos: " << p1.distanciacon(p2) << endl;


    Segmento s1;