Witam
Stworzyłem sobie klasę zawierającą składowe stałe. Np. taką:
class Mapa {
private:
float const evaporate_rate;
float const alpha;
float const beta;
int size;
/*...*/
}
Do ich zainicjalizowania potrzebuję listy inicjalizacyjnej. Chcę mieć możliwość tworzenia obiektów tej klasy na kilka sposobów, wliczając w to m.in. domyślne wartości dla w/w składników.
Moje pytanie: Na ile poprawne i zgodne z zasadami jest wykorzystanie w tym przypadku prywatnego konstruktora domyślnego posiadającego listę inicjalizacyjną z tymi wartościami:
Mapa::Mapa() : evaporate_rate(0.95), alpha(2), beta(1.5) {/*...*/}
a do tworzenia innych wystąpień tej klasy używanie np. takich konstruktorów (ze szczególnym uwzględnieniem poprawności konstruktora domyślnego tej samej klasy na liście):
Mapa::Mapa(int size) : Mapa() {/*...*/}
Mapa::Mapa(float eva, float ala, float beata, int size) : evaporate_rate(eva), alpha(ala), beta(beata) {/*...*/}
Czy takie podejście nie wpłynie jakoś negatywnie/niespodziewanie na działanie i wydajność programu (wycieki pamięci itp ;))?