Z jakimi pytaniami z języka programowania C++ możesz się spotkać na rozmowie rekrutacyjnej? Poniżej przedstawiamy 10 najczęściej pojawiających się pytań i odpowiedzi.
W artykule wymieniono:
- Jaki jest rozmiar danych typu int?
- Wymień różnicę pomiędzy prefix a postfix
- Wymień różnice pomiędzy while-loop a do-while-loop
- Czy da się skompilować program bez main function?
- Czym jest funkcja wirtualna w C++?
- Jakie są trzy różne typy specyfikatorów dostępu C++?
- Czym jest abstrakcja w C++?
- Czy można przeciążyć destruktor? Wyjaśnij
- Czym jest pojęcie OOP w C++?
- Czym jest przeciążenie operatora (operator overloading)?
1. Jaki jest rozmiar danych typu int?
Rozmiar danych typu int to 4 bajty.
2. Wymień różnicę pomiędzy prefix a postfix
Prefix (++i) najpierw zwiększa wartość, a następnie przypisuje wartość do wyrażenia.
Postfix (i++) przypisuje wartość do wyrażenia, a następnie zwiększa wartość zmiennej.
3. Wymień różnice pomiędzy while-loop a do-while-loop
while-loop weryfikuje, czy warunek jest prawdziwy, czy fałszywy. Jeśli jest prawdziwy, iteruje pętlę tak długo, aż stanie się fałszywy. Jeśli warunek był fałszywy, wówczas nie wystąpi żadna iteracja.;
while-do-loop najpierw wykonuje jednorazową iterację loop body, a następnie sprawdza warunek. Jeśli jest fałszywy, iteracja loop body będzie jednorazowa.
4. Czy da się skompilować program bez main function?
Tak, można skompilować program bez main function, ale nie możesz uruchomić ani zaimplementować programu, ponieważ funkcja main() jest funkcją główną, która uruchamia program.
5. Czym jest funkcja wirtualna w C++?
Funkcja wirtualna (virtual function) to funkcja składowa w klasie bazowej,zredefiniowana w klasie pochodnej. Uruchamia się ją za pomocą słowa kluczowego virtual. Zapewnia wywołanie poprawnej funkcji dla obiektu, niezależnie od typu odniesienia/wskaźnika użytego do wywołania tej funkcji. Funkcje wirtualne są używane głównie do polimorfizmu środowiska uruchomieniowego.
6. Jakie są trzy różne typy specyfikatorów dostępu C++?
Publiczne: wszystkie funkcje składowe i składowe danych są dostępne poza klasą.
Chronione: wszystkie funkcje składowe i składowe danych są dostępne w klasie i klasie pochodnej.
Prywatne: nie można uzyskać dostępu do wszystkich funkcji składowych i członków danych poza klasą.
7. Czym jest abstrakcja w C++?
Abstrakcja oznacza wyświetlanie istotnych szczegółów użytkownikowi przy jednoczesnym ukryciu szczegółów nieistotnych lub niepożądanych dla oczu użytkownika. W C++ wyróżniamy dwa rodzaje abstrakcji: data abstraction dotyczącą danych oraz control abstraction.
8. Czy można przeciążyć destruktor? Wyjaśnij
Nie można przeciążyć destruktorów. Jest to niemożliwe, ponieważ destruktory nie przyjmują argumentów ani niczego nie zwracają. W każdej klasie musi być tylko jeden pusty destruktor, który powinien mieć pustą listę parametrów.
9. Czym jest pojęcie OOP w C++?
- Obiekt
- Klasa
- Dziedzictwo
- Wielopostaciowość
- Kapsułkowanie
- Abstrakcja
Obiekt: Wszystko, co istnieje fizycznie w prawdziwym świecie, nazywane jest obiektem.
Klasa: Kolekcja obiektów nazywana jest klasą.
Dziedziczenie: Właściwości klasy nadrzędnej odziedziczone po klasie podrzędnej są znane jako dziedziczenie.
Polimorfizm: Jest to zdolność do istnienia w więcej niż jednej formie.
Hermetyzacja: Powiązanie kodu i danych w jedną całość.
Abstrakcja: Ukrywanie wewnętrznych szczegółów i pokazywanie użytkownikowi funkcjonalności.
10. Czym jest przeciążenie operatora (operator overloading)?
Przeciążanie operatorów to mechanizm, w którym operatorowi nadawane jest specjalne znaczenie. Można przeciążyć operator „+” w łańcuchu przypominającym klasę, aby połączyć dwa ciągi, używając tylko „+”.