Dlaczego wskaźnik nie działa ?

0

Dlaczego wskaźnik mi nie działa ?

#include <iostream>

using namespace std;

class Ksztalt
{
public:
    virtual void oblicz_pole()=0;
    //czysta funkcja virualna
};

class Kolo :public Ksztalt
{
    float r;
public:
    Kolo(float x)
    {
        r=x;
    }
    void oblicz_pole()
    {
        cout<<"Pole kola: "<<3,14*r*r;
    }
};

class Kwadrat
{
    float a;
public:
    Kwadrat(float x)
    {
        a=x;
    }
    virtual void oblicz_pole()
    {
        cout<<"pole kwadratu to: "<<a*a;
    }
};

int main()
{
Kolo k(1);
Kwadrat kw(2);

Ksztalt *wsk;
wsk=&k;
wsk-> oblicz_pole();

wsk=&kw;
wsk-> oblicz_pole();
    return 0;
}
2
wsk = &kw;

Wskaźnikowi typu Ksztalt nie możesz przypisać zmiennej typu Kwadrat dlatego że ta klasa nie dziedziczy po klasie Ksztalt.

Masz jeszcze jeden błąd:

cout << "Pole kola: " << 3, 14 * r * r;

We wszystkich (albo przynajmniej większości) języków programowania używa się kropki jako separatora dziesiętnego, nie przecinka.

1
atmal napisał(a):

We wszystkich (albo przynajmniej większości) języków programowania używa się kropki jako separatora dziesiętnego, nie przecinka.

Poza tym NIGDY nie oddziela się odstępem części dziesiętnej od całkowitej…

1 użytkowników online, w tym zalogowanych: 0, gości: 1