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
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