• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

funkcja do 2 klas

0 głosów
89 wizyt
pytanie zadane 15 sierpnia 2020 w C i C++ przez lujasjeden Użytkownik (860 p.)
edycja 15 sierpnia 2020 przez lujasjeden

isInteger()  - funkcja sprawdzajaca czy podana liczba wpisana jest całkowita

Tutaj mam 1 klase wirtualna i 2 klasy pochodne

#include <iostream>

using namespace std;

class Polynomial
{
public:
    virtual void gather()=0;
    virtual void show()=0;
};

class Wx :public Polynomial
{
protected:
    string userStringNum;
    int degree;
    int helper;
    float *coefficients;

public:
    virtual void gather();
    virtual void show();
    void isInteger();
    Wx(string="0", int=0, int=0);
    ~Wx();

};

class Px :public Wx
{
public:
    virtual void gather();
    virtual void show();
    Px(string="0", int=0, int=0);
    ~Px();
};

I ogolnie tą funkcje moglbym uzyc w obu pochodnych klasach w ich funkcjach gather(), jak to zrobic?

bo mam np cialo Wx::gather

#include <iostream>
#include "polynomials.h"
using namespace std;

void Wx::gather()
{
    cout<<"Input degree of polynomial W(x): ";
    cin>>Wx::degree;
//i teraz tu bym chcial wywolac funkcje isInteger
    cout<<endl;
}

Jak zapisac cialo funkcji isInteger no bo musze wpisac Wx::isInteger albo Px::isInteger no ale ja chce ja uzywac zaleznie od tego co potrzebuje a chyba istnieje sposob aby nie pisac tego samego 2 razy, czy tutaj sprawdzi sie przyjazn? (nie wiem),

komentarz 15 sierpnia 2020 przez DragonCoder Nałogowiec (36,500 p.)
Albo uzywasz po prostu klasy bazowej i nie tworzysz funkcji wirtualnej. Rownie d8brze, mozesz stworzyc sobie obiekt klasy w klasie i uzywac go.

Nie widze sensu uzywanis funkcji isIntege. Napisz kod:

Zmienna typu integer, strumien wejscia, podaj liczbe flost i wyswietl i zobacz co sie stanie

1 odpowiedź

0 głosów
odpowiedź 26 sierpnia 2020 przez Author[] Bywalec (2,880 p.)
Niepotrzebnie korzystasz z klasy wirtualnej, pamiętaj że klasa może dziedziczyć z kilku klas. Stwórz jeszcze jedną klasą i ustaw dziedziczenie dla dwóch pozostałych klas. W tej klasie zrób funkcję i w ten sposób masz jedną funkcję dla dwóch klas

Podobne pytania

0 głosów
1 odpowiedź 108 wizyt
0 głosów
1 odpowiedź 114 wizyt
pytanie zadane 16 grudnia 2019 w C i C++ przez Adam Kowalski Użytkownik (630 p.)
+1 głos
3 odpowiedzi 1,510 wizyt

86,484 zapytań

135,239 odpowiedzi

300,481 komentarzy

57,230 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...