Cześć, mam następujący problem. Mam klasę Punkt:
#pragma once
#include <string>
using namespace std;
class Punkt
{
protected:
float x, y;
string nazwa;
public:
Punkt(float = 0, float = 0, string = "A"); // Konstruktor z wartościami domyślnymi
~Punkt();
void wyswietl(); //Metoda wyświetlająca info
};
Oraz dziedziczącą po niej klasę Kula :
#pragma once
#include "Punkt.h"
#include <string>
using namespace std;
class Kula :
protected Punkt
{
protected:
string nazwa; // Przesłaniam pole nazwa z klasy Punkt
float promien;
public:
Kula(float=0,float=0,float=0,string="kula_1"); // Konstruktor z wartościami domyślnymi dla klasy Kula
~Kula();
void wyswietl(); // Przesłaniam metodę z klasy Punkt
};
Ciało konstruktora z klasy Punkt wygląda tak:
Punkt::Punkt(float x,float y,string nazwa)
{
this->x = x;
this->y = y;
this->nazwa = nazwa;
}
A ciało konstruktora z klasy Kula wygląda tak:
Kula::Kula(float x,float y, float promien, string nazwa)
{
Punkt::Punkt(x,y); // Wywołuje konstruktor z klasy nadrzędnej żeby mi ustawił wartości x,y obiektu klasy Kula
this->promien = promien; // Ustawiam promien i nazwe, jak ich nie podam to da mi domyślne
this->nazwa = nazwa;
}
No i właśnie przy tworzeniu obiektu klasy kula jak podaje
Kula k(2,2) ;
k.wyswietl();
To powinno mi ustawić kule o punkcie (2,2) promieniu 0 i nazwie "kula_1" podczas gdy ciągle wywołuje mi konstruktor z klasy Punkt z wartościami domyślnymi co skutkuje wyświetleniem się punktu (0,0) promieniu 0 i nazwie "kula_1". Proszę o pomoc :> Dziękuję.