Dlaczego stały element danych klasy musi być zainicjowany w konstruktorze?
Chcę wiedzieć, dlaczego stały element danych klasy musi być zainicjowany w konstruktorze i dlaczego nie gdzie indziej? Jaki jest wpływ takiego działania i nie robienia tego?
Widzę to tylkostatyczne stałe dane całkowe może być zainicjowany wewnątrz klasy innej niż ta, której nie można zainicjować wewnątrz klasy.
na przykład: - Załóżmy, że poniżej znajduje się moja deklaracja klasy
class A{
int a; // This we can initialize at the constructor or we can set this member by calling "vSet" member function
const int b;
static const int c = 10; //This works fine
public:
A();
~A();
void vSet(int a);
int iAdd();
void vDisplay();
};
A konstruktor jest zdefiniowany jak wspomniano poniżej: -
Edytowana sekcja: Jak poprzedni przykład definicji konstruktora był nieprawidłowy
A::A():a(1),b(9){}
Proszę, popraw mnie jeśli się mylę. Z góry dziękuję.