Stanford Compilers Flashcards
Co oznacza poniższa deklaracja w C++?
extern int foo();
Do funkcji foo nie można przekazać parametrów
Co oznacza poniższa deklaracja w C?
extern int foo();
Do funkcji foo można przekazać dowolną liczbę parametrów z dowolnymi typami.
Jakiej kontrukcji użyć aby można było używać funkcji napisanych w C z kodu C++?
Po słowie kluczowym extern wpisać “C”, jak poniżej:
extern “C” int foo(int a, char* b);
Co się stanie jeżeli nazwę funkcji zdefiniowanej gdzie indziej słowem kluczowym extern bez dodatkowej klauzuli “C” ?
Kompilator nazwię funkcję po swojemu i nie będzie to pierwotnie zapisana nazwa funkcji.
Jakie nowe słowa kluczowe występują w C++?
new, delete, const, class
Jaka koncepcja programowania obiektowego gwarantuje pewność przepływu informacji w programie?
information hiding (ukrywanie informacji)
Wymień powód dla którego warto używać klas?
Łatwiej jest zorganizować program, jeżeli dane oraz funkcje na nich operujące są w jednym miejscu.
Jak nazywa się wskaźnik do obiektu, który zawiera definicję funkcji składowej z której nastąpiło wywołanie?
this
Czy wewnątrz funkcji składowej wywołanie innej funkcji składowej poprzez this-> jest domniemane?
Tak, jest domniemane.
Co możemy zyskać używajac funkcji dostępowych do pól klas i uczynić te pola klas prywatnymi?
Dodatkową modularność, jako, że możemy zredefiniować sposób w jaki przechowywane są dane bez zmiany dostępu do nich.
Czy konstruktor można umieścić w dowolnej sekcji (public, private, protected)?
Tak, w dowolnej.
Czy konstruktor zwraca wartość?
Nie zwraca
Czy poniższa deklracja z inicjalizacją jest poprawna?
Stack stack2 = new Stack(17);
Nie jest poprawna, operator new zwraca wskaźnik na obiekt
define dlugosc_pola 12
Jaką konstrukcją można zastąpić poniższą dyrektywę preprocesora
const int dlugosc_pola = 8;
Czy w definicji klasy w sekcji składowych funkcji można inlineować funkcje?
Można, chociaż nie jest to zalecane, należy rozdzielić nagłówek od implementacji.
Co można stwierdzić patrząc na poniższy listing (znaczenie ma wytłuszczony druk)
class {
…
bool Full() const;
…
};
Funkcja składowa Full nigdy nie modyfikuje danych składowych klasy
Co się stanie przy próbie dealokacji pamięci automatycznej słowem kluczowym delete?
Wiadomość z biblioteki glibc - Invalid pointer, ze stack trace
[gdb] Jaką komendą ustawić szerokość linii?
**set **width 70
[gdb] Jaką komendą ustawić przerwanie na nazwię funkcji?
break **nazwa funkcji