Avatar billede vorherre Nybegynder
10. august 2001 - 23:30 Der er 7 kommentarer og
1 løsning

Hvad er forskellen??

Hej!
Jeg er ny i c++, og vil gerne vide hvad forskellen er
en vitual funktion, og en pure virtual funktion??

Er der en her som kan forklare mig det??
Avatar billede erikjacobsen Ekspert
10. august 2001 - 23:38 #1
En klasse med en pure virtual funktion kan ikke instantieres, altså
der kan ikke laves objekter af den - og sådan en klasse kaldes også
abstrakt. De klasser, der nedarver fra denne, kan så vælge at redefinere
en pure virtual, og først når i en nedarving alle pure virtual funktioner
er defineret, kan man lave objekter af den.

Det er altså en måde at sige: i denne klasse skal der være en funktion
af dette navn - men den skal altså først laves i en eller anden underklasse.
Avatar billede vorherre Nybegynder
10. august 2001 - 23:45 #2
Vil det sige at rene virtuelle funktion først defineres i en nedarvet klasse?? Men ikke kan bruges i den klasse den er deklareret??
Avatar billede erikjacobsen Ekspert
10. august 2001 - 23:48 #3
Ja, eksistensen af en ren virtuel funktion i en klasse gør den totalt ubrugelig -
undtagen til den ene ting: at nedarve fra. Og indmaden af sådan en funktion
skal laves i en nedarvning - ikke nødvendigvis den første
Avatar billede vorherre Nybegynder
10. august 2001 - 23:51 #4
Kan sådan en abstrakt klasse godt være nedarvet fra en anden klasse??
Avatar billede erikjacobsen Ekspert
10. august 2001 - 23:55 #5
Du siger, at hvis man en flot og fornem class Person, der ikke er abstract, så
laver du en nedarvning til en der hedder - øh - Kunstner, og i den putter du
en pure virtual funktion ind, ja, så er kunstneren abstrakt. Indrømmet, jeg har
vist aldrig prøvet, men ja, det burde man kunne.
Avatar billede vorherre Nybegynder
10. august 2001 - 23:58 #6
Indrømmet, jeg tror ikke jeg får brug det..
Et sidste spørgsmål(Du ved meget om det her)

En statisk funktion, Hva\' faen er det godt for??
Avatar billede erikjacobsen Ekspert
11. august 2001 - 00:06 #7
\"ved meget om\" - uha - det gør næsten ondt i hjernecellerne, når
jeg skal grave den viden frem ... det er mange år siden.

Om du skriver static eller ej foran en funktion gør i sig selv ingen forskel
umiddelbart. Men funktioner i en fil aaaa.c, der ikke er static kan ses og bruges i
bbbb.c. Så med static skjuler du dem for andre .c filer, og kan evt. have
forskellige funktioner med samme navn i forskellige .c filer i samme program.
Avatar billede vorherre Nybegynder
11. august 2001 - 00:11 #8
Jeg takker for oplysningerne og tildeler dig point..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester