Dwie klasy w osobnych plikach
Ostatnio zmodyfikowano 2014-12-04 21:04
Bajaczysko Temat założony przez niniejszego użytkownika |
Dwie klasy w osobnych plikach » 2014-12-04 18:31:11 Witam, Mam pewien problem z klasami. Mam taki kod: Vector.hpp #ifndef VECTOR_HPP_INCLUDED #define VECTOR_HPP_INCLUDED
class Vector { public: int x, y; Vector( int x, int y ); Vector( const Vector & Vec ); void wypisz(); };
#endif
Vector.cpp #include "Vector.hpp" #include <iostream>
Vector::Vector( int a, int b ) { x = a; y = b; }
Vector::Vector( const Vector & Vec ) { x = Vec.x; y = Vec.y; }
void Vector::wypisz() { std::cout << this->x << " " << this->y; }
Interface.hpp #ifndef INTERFACE_HPP_INCLUDED #define INTERFACE_HPP_INCLUDED #include "Vector.hpp"
class GUI { public: static int points; Vector sPole, kPole; GUI( Vector sPole, Vector kPole ); };
#endif
Interface.cpp #include "Interface.hpp" #include "Vector.hpp"
GUI::GUI( Vector sPole, Vector kPole ) { this->sPole = sPole; this->kPole = kPole; }
W ostatnim pliku w linijce z komentarzem występuje właśnie błąd takiego typu: error: no matching function for call to 'Vector::Vector()' Jakieś porady? ;) Z góry dziękuje za pomoc. |
|
michal11 |
» 2014-12-04 18:57:15 Nie zdefiniowałeś domyślnego, bezargumentowego konstruktora. |
|
Bajaczysko Temat założony przez niniejszego użytkownika |
» 2014-12-04 19:16:08 Działa. Możesz mi wytłumaczyć czemu to jest potrzebne? |
|
michal11 |
» 2014-12-04 20:47:11 Ponieważ trzeba wywołać jakiś konstruktor dla Vectorów. Domyślnie jeżeli nie wywołujesz konstruktora z argumentami w liście inicjalizacyjnej konstruktora klasy zawierającej to wywoływany jest konstruktor bezargumentowy. |
|
Kaikso |
» 2014-12-04 21:04:25 #ifndef INTERFACE_HPP_INCLUDED #define INTERFACE_HPP_INCLUDED #include "Vector.hpp"
class GUI { public: static int points; Vector sPole, kPole; GUI( Vector sPole, Vector kPole ) : sPole( sPole ) , kPole( kPole ) { } };
#endif
A z pliku Interface.cpp usuń deklaracje konstruktora. |
|
« 1 » |