Liczenie obiektow w klasie i wyznaczanie numeru obiektu

0

Mam za zadanie napisać program z liczbami zespolonymi, w ktorym zostanie policzona liczba obiektów klasy i wyznaczony numer jednego z obiektów. Ogół programu napisałam na bazie przykładowego kodu ppdanego przez wykładowcę, jednak mam nadal problem z liczeniem obiektów. Próbowałam sposobu ze zmiennymi statycznymi, ale nie wyświetla mi właściwych wartości. Czy jest jakiś inny sposób na policzenie obiektów? A jeśli nie, to czy jest gdzieś przykład użycia static dla podobnego zadania?

0

mozesz tworzyc obiekty przez zewnetrzna klase (aka builder) i w niej zliczac ile ich jest i nadawac im ID czy co tam chcesz

mozesz uzyc statica, ale ja nie lubie staticow

0

Napisałabym używając drugiej klasy, ale program musi być dopisany do konkretnego main() wg którego trzeba skorzystać z funkcji statycznej do liczenia ogółu obiektów i funkcji const do numeru obiektu powstałego przez konstruktor kopiujący

0

pokaz kod i pokaz co masz zrobic.

0
#include <iostream>
using namespace std;
class complex
{
    double re, im;
    static int count;
public:
    complex(int& i) :re(static_cast<double>(i)), im(0.){};
    complex(double r = 0., double i = 0.) : re(r), im(i){}
    complex(char r = 0., char i = 0.) : re(r), im(i){}
    complex(bool r = 0., bool i = 0.) : re(r), im(i){}
    operator int(){ return static_cast<int>(re); }
    double getre() { return re; }
    double getim() { return im; }
    complex() { count++; }
    complex(const complex&) { count++; }
    ~complex() { count--; }
    static int LP()
    {
        return count;
    }
    NrCmpl() const { return count; }
};

int complex::count = 0;

ostream& operator<<(ostream& str, complex c){
    str << "(" << c.getre() << ", " << c.getim() << ")";
    return str;
}

class point
{
    double x, y;
public:
    point(double x0 = 0., double y0 = 0.) : x(x0), y(y0){};
    point(complex&);
    point(int);
    operator complex(){ return complex(x, y); }
};

complex sumCmplInt(complex c, int i)
{
    return complex(c.getre() + static_cast<double>(i), c.getim());
}

int main()
{
    complex c(-3., -2.), *pC = &c, cmpl = c;
    cout << "cmpl object number: " << cmpl.NrCmpl() << endl;
    char chr = 'D'; bool b = true;
    cout << sumCmplInt(chr, chr) << endl;
    cout << sumCmplInt(b, b) << endl;
    cout << "Number of created complex objects: " << complex::LP() << endl;
    return 0;
}

Coś takiego wykombinowałam, ale wyświetla mi złe wartości elementów. Podany w zadaniu był tylko main, reszte napisałam sama

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