adf88 napisał(a)
Jeśli problemem jest to, że nie chcesz wielokrotnie powtarzać tych samych inicjalizacji w różnych konstruktorach to skorzystaj z tej rady:
tini napisał(a)
Misz napisał(a)
Chodzi o to, że w klasie chciałbym mieć kilka konstruktorów, które będą wykorzystywane w zależności od celu i nie chcę w każdym z nich przypisywać wstępnej wartości
to zrób sobie metodę np. init() i w niej inicjalizuj co tam chcesz.
czyli np.
class klasa {
double zmienna;
int a;
int b;
void init()
{
this->zmienna = 27.3;
this->a = 3;
this->b = 0;
}
public:
klasa()
{
this->init();
}
klasa(double x)
{
this->init();
this->zmienna = x;
}
};
Dzięki za info :)
Ogólnie to chodzi mi o to, że chciałbym, żeby kilka funkcji nie mogło być wywołanych przed wywołaniem innych funkcji. Dlatego chciałbym przykładowo zadeklarować kilka zmiennych typu bool i przypisać im na wstępie wartość 0 (np. bool zmienna = 0; -> następnie w funkcjach, które mają być wywołane wcześniej na końcu wpisuję zmienna = 1; -> a w funkcjach, które mają być wywołane później w pisuję if(zmienna){/.../}.
Chodzi o takie zabezpieczenie, żeby jedna czy więcej funkcji nie narobiła mi kłopotów w klasie :D
Natomiast nie chcę używać do tego konstruktorów bo nie chcę, żeby użytkownik musiał pamiętać o wywołaniu jakiegoś konstruktora tylko, żeby się jakoś zabezpieczyć...
Obecnie poradziłem sobie z tym problemem w ten sposób, że utworzyłem sobie klasę pomocniczą typu:
class control {
bool check1;
bool check2;
bool check3;
control(){check = 0;}
bool check(){
if(check1 && check2 && check3)
return 1;
else
return 0;
}
};
i w głównej klasie robię sobie taki obiekt -> następnie w każdej ważnej funkcji robię np. tak: obiekt.check1 = 1; -> a w funkcji, która ma być wykonana po wywołaniu innych funkcji tak: if(obiekt.check()){
//...
}
Póki co działa! :D