Ovu stranicu je najbolje pregledavati u modernom internet pregledniku s omogućenim JavaScriptom.

[OOUP] 1. laboratorijska vježba - 2021/2022

---

ima li smisla išta gledati s prezentacija za ovaj labos ili nemaju veze jedno s drugim?


Ducky

🤡 malo pomaže, barem znaš o čem se radi gradivo. Pogledaj videopredavanja dok ne kaže na videu da možeš riješit labos


---

može li mi netko objasniti što točno ova linija koda napravi? typedef char const *(*PTRFUN)();


Ducky

🤡 nisam ziher, ali mislim da definiraš ptrfun kao pointer na funkcije tipa char


Ollie

🤡
Definiraš svoj novi tip koji se zove PTRFUN i on je pointer na funkciju koja vraća char const* i ne prima argumente.
typedef - definiraš novi tip
char const* - tip koji vraća funckija (pointer na char const)
(*PTRFUN) - novom tipu ime PTRFUN
() - funkcija na koju će taj tip pokazivati ne prima nikakve argumente

Kasnije to korisiš kao i ostale tipove, npr:

PTRFUN greet;                 // greet je pointer na neku funkciju koja ne prima argumente i vraća char const*
char const* dogGreet(){       //greet bi mogao bit pointer na ovu funckiju 
    return "vau!";
}

Svarog

Ollie ne prima argumente

mala ispravka, prazna lista argumenata u C-u znači da funkcija prima neodređeni broj argumenata. Funkcija koja zaista ne bi primala argumente (greška prilikom prevođenja) bi bila:

typedef char const * (*PTRFUN)(void)

Za više info, vidi https://softwareengineering.stackexchange.com/a/287002


---

ekipa koja je imala labos, možete staviti kak je blic i usmeni na labosu izgledao? hvala 🙂


DankJakov

🤡 blic su 10 pitanja vezano usko uz samu vjezbu, tipa koliko koja klasa ima fcija u virt tablici, koliko memorije je neka klasa zauzimala i tako bas specificnosti… Odgovarao sam dobrih 15akmin, kolega je i duze, pitao me doslovno sva pitanja za svaki zadatak i u asembleru prolazili. Ovo je sveskupa najveci cancer od labosa za pljunutih 5 bodova koji sam ikad dozivio, a da ne govorim o negativnim lol



DankJakov

🤡 Ne ali to svakako prodji jer me dosta od toga pitao na usmenom


---

DnkCkv oprosti sto te maltretiram, ali jos me zanima jel blic imao pisanje nekog dodatnog koda?


DankJakov

🤡 Nope samo abcd pitalice


---

jel bi ovo bio dio gdje se postavlja VTable u Base konstruktoru?

_ZN4BaseC2Ev:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	lea	rdx, _ZTV4Base[rip+16]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc

Ardura

Pitanja s blica:
Zbog cega se CoolClass razlikuje u velicini od PlainOldClass?
Kako se tocno definira PTRFUN?
Pitanje vezana uz gdje se tocno poziva npr.dogGreet i slicno
Koliko funkcija ima virtualna tablica za neku klasu
1 pitanje za asembler, primjer koda pa koja linija nesto znaci(onaj dio prije poziva set za CoolClass)
Koliko puta se pozove call nad klasom koja ima virt funkcije, konstruktor, destruktor
Ako Square pozove negative_value_at nad kojim objektom ce se zapravo pozvat
U kojem trenu se definira tabulate() (tijekom prevodenja ili tijekom izvodenja)
I slicno tako pitanje samo za neku funkciju vezanu uz cat/dog


---

Maddy jesu tabulate i same_functions_for_ints obje at runtime jer sadrže pozive virtualnih funkcija?


Ardura

🤡 Nisam sigurna u to pitanje, sorry😕