Estoy aprendiendo a programar, y me he encontrado con que en mi programa no puedo usar una funcion, definida en una clase, pasandole como parametro un objeto ya creado.
Al compilar me devuelve el error.
" Error 1 error LNK2019: unresolved external symbol "public: void __thiscall Rectangulo::config_punto_inferior_derecho(class Punto)" (?config_punto_inferior_derecho@Rectangulo@@QAEXVP unto@@@Z) referenced in function _main C:\Users\raulh_000\Desktop\Problema de Clases\Source.obj Project35
"
"Error 2 error LNK1120: 1 unresolved externals C:\Users\raulh_000\Desktop\Problema de Clases\Debug\Project35.exe 1 1 Project35
"
Os dejo el codigo Aqui:
Source.cpp
Código C++:
Ver original
#define _CRT_SECURE_NO_WARNINGS #include "Punto.h" #include "Rectangulo.h" #include <stdio.h> int main() { int coordenada; //Punto a Punto a; //scanf("%i",&coordenada); coordenada=5; a.config_x(coordenada); //scanf("%i",&coordenada); coordenada=5; a.config_y(coordenada); //Punto b Punto b; //scanf("%i",&coordenada); coordenada=0; b.config_x(coordenada); //scanf("%i",&coordenada); coordenada=0; b.config_y(coordenada); //Punto c Punto c; //scanf("%i",&coordenada); coordenada=0; c.config_x(coordenada); //scanf("%i",&coordenada); coordenada=5; c.config_y(coordenada); //Punto d Punto d; //scanf("%i",&coordenada); coordenada=5; d.config_x(coordenada); //scanf("%i",&coordenada); coordenada=0; d.config_y(coordenada); //Crea Rectangle Rectangulo rectang(c,a,b,d);//Li pasem els punts com si fosin una variable //Retorne la el valor de la area rectang.config_punto_inferior_derecho(a); }
Punto.cpp:
Código C++:
Ver original
#include "Punto.h" Punto::Punto() { x=0; y=0; } Punto::~Punto() { } void Punto::config_x(int varx) { x=varx; } void Punto::config_y(int vary) { y=vary; } int Punto::return_x() { return x; } int Punto::return_y() { return y; }
Rectangulo.cpp
Código C++:
Ver original
#include "Rectangulo.h" #include "Punto.h" //Constructor de Rectangle Rectangulo::Rectangulo(Punto a,Punto b,Punto c,Punto d) { //Considerem els punts com una variable y els hi pasem al rectangle punto_superior_izquierdo=a; punto_superior_derecho=b; punto_inferior_izquierdo=c; punto_inferior_derecho=d; //Pasem el resultat de les funcions definides a "Punto.h" de els punts que formen les linies linea_superior=punto_superior_derecho.return_x()-punto_superior_izquierdo.return_x(); linea_inferior=punto_inferior_derecho.return_x()-punto_inferior_izquierdo.return_x(); linea_izquierda=punto_superior_izquierdo.return_y()-punto_inferior_izquierdo.return_y(); linea_derecha=punto_superior_derecho.return_y()-punto_inferior_derecho.return_y(); }; Rectangulo::~Rectangulo() { } void config_punto_superior_izquierdo(Punto p) { Punto punto_superior_izquierdo=p; } void config_punto_superior_derecho(Punto p) { Punto punto_superior_derecho=p; } void config_punto_inferior_izquierdo(Punto p) { Punto punto_inferior_izquierdo=p; } void config_punto_inferior_derecho(Punto p) { Punto punto_inferior_derecho=p; }
Rectangulo.h
Código C++:
Ver original
#pragma once #include "Punto.h" class Rectangulo { public: Rectangulo(Punto punto_superior_izquierdo,Punto punto_superior_derecho,Punto punto_inferior_izquierdo,Punto punto_inferior_derecho); ~Rectangulo(); void config_punto_superior_izquierdo(Punto p); void config_punto_superior_derecho(Punto p); void config_punto_inferior_izquierdo(Punto p); void config_punto_inferior_derecho(Punto p); int return_area()const { return linea_izquierda*linea_derecha; } private: //Crea els Punts del rectangle Punto punto_superior_izquierdo; Punto punto_superior_derecho; Punto punto_inferior_izquierdo; Punto punto_inferior_derecho; //La longitud de cada aresta int linea_superior=punto_superior_derecho.return_x()-punto_superior_izquierdo.return_x(); int linea_inferior=punto_inferior_derecho.return_x()-punto_inferior_izquierdo.return_x(); int linea_izquierda=punto_superior_izquierdo.return_y()-punto_inferior_izquierdo.return_y(); int linea_derecha=punto_superior_derecho.return_y()-punto_inferior_derecho.return_y(); };
Punto.h
Código C++:
Ver original
#pragma once class Punto { public: Punto(); ~Punto(); private: int x; int y; public: void config_x(int varx); void config_y(int vary); int return_x(); int return_y(); };