Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Dwie klasy w osobnych plikach

Ostatnio zmodyfikowano 2014-12-04 21:04
Autor Wiadomość
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
C/C++
#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_HPP_INCLUDED

Vector.cpp
C/C++
#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
C/C++
#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_HPP_INCLUDED

Interface.cpp
C/C++
#include "Interface.hpp"
#include "Vector.hpp"

GUI::GUI( Vector sPole, Vector kPole ) //błąd
{
    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.
P-122198
michal11
» 2014-12-04 18:57:15
Nie zdefiniowałeś domyślnego, bezargumentowego konstruktora.
P-122203
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?
P-122204
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.
P-122214
Kaikso
» 2014-12-04 21:04:25
C/C++
#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 // INTERFACE_HPP_INCLUDED

A z pliku Interface.cpp usuń deklaracje konstruktora.
P-122217
« 1 »
  Strona 1 z 1