Witam, mam np. taki konstruktor
Kl::Kl(){
std::cin>>jakies_pole;
}
Nie ustawiam tu wartości żadnych składowych na podstawie parametrów konstruktora. Obiekt mogę utworzyć tak:
Kl k;
Wtedy automatyczne będę musiał wpisać jakieś dane. Jednak czy takie coś jest bezpieczne/stosowane/zgodne z przeznaczeniem?
* Dalsza część pytania nieaktualna bo komplikuje temat i wprowadza w błąd, nie usunąłem jej by nie postąpić nieuczciwie wobec tych co napisali komentarze. Po prostu chodzi mi o to czy powinno się tworzyć konstruktory które coś wypisują na ekranie lub pobierają dane z klawiatury czy raczej jedyne co powinny robić to przypisywać wartości składowym:
W razie dalszych wątpliwości:
class KL{
public:
int x;
KL(){
std::cout<<"witaj! Podaj ile masz lat: ";
std::cin>>x;
}
};
int main(){
KL t; //nie wywołaliśmy jawnie żadnej metody a zadeklarowanie obiektu działa dokładnie jak funkcja, takie coś kompiluje się poprawnie... ale czy ma prawo bytu w c++? Czy warto takiego rodzaju konstruktorów używać?
}
Zastanawiam się nad tym bo mam zadanie do zrobienia, i muszę mieć 2 konstruktory. Przeznaczony do sztywnego przekazania argumentów (zainicjalizowania obiektu) i drugi przeznaczony do tego (raczej nie koniecznie takie instrukcje musi zawierać) żeby użytkownik sam wpisał interaktywnie dane. Tzn. że ten konstruktor np może przyjmować jako argument zainicjalizowany już obiekt albo prosić użytkownika w swojej definicji o podanie danych. Co powinienem użyć? Co jest lepsze?
Dziękuje serdecznie za pomoc :)