Questo sito utilizza cookies
solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi
l'informativa sui cookies
.
Accesso in corso...
Username:
Password:
oppure
Username o password invalidi
Forum
Sorgenti
C
C++
Managed C++
Visual Basic .NET
Visual Basic
Visual C++
Java
C#
Perl
Qbasic
Delphi
Python
Prolog
Lua
Scheme
Cobol
LabVIEW
Ruby
ASP
PHP/MySQL
x86 Assembly
MIPS Assembly
Pascal
Fortran
Bash
Gml
Javascript
Programmi
Animazioni
Desktop
Esempi
Giochi
Grafica e Fotografia
Insegnamento e hobby
Internet
Lavoro e finanza
Matematica e fisica
Moduli e librerie
Musica
Networking
Scripts
Sicurezza
System Tweak
Utility
Web authoring
Guide
Visual Basic .NET
Pascal
HTML
SDL
Typescript
VBScript
Batch scripting
GWBasic
Licenze Software
Recensioni
Manuali
Software
Tutorials
Linguaggi
ASP
C
C#
C++
Delphi
Java
Pascal
Perl
PHP
Prolog
Python
Ruby
Ruby On Rails
Scheme
Visual Basic
Google
Hardware
Informatica
Internet
iPhone
Masterizzare
CD
DVD
Files Immagine
Mp3 e Audio
Sicurezza e OS
Sistemi operativi
Linux
Windows
Video Digitale
Lezioni
Programmazione
Ruby
iOS
Tecnologie
Multi Touch
Project Zone
Che cos'è?
Progetti più attivi
Editor mappe
Analisi testi
Parole
FILDER
2048
2D Mappy
RTDownloadCounter
SSBackUp
Estrazione
Codificatore
pSIMPLETRON
ErrorReporter.NET
Web Escape
Napoleon
Mini Cad
Tutti i progetti
Utility
News nel tuo sito
Blog
Compilatori
Masterizzare
Siti amici
Pubblica un sorgente
Programmare
Come imparare a programmare
Come diventare un buon programmatore
Community
Chi Siamo?
Membri
Dev Team
Join Us
Libreria
Premio Stallman
I Top 10
Medagliere
Mascotte
Foto raduni
Assumici
Scrivici
supportaci
Forum
-
C/C++
- Errore classe con metodi virtual
Neo25
(Normal User)
Newbie
Messaggi:
16
Iscritto:
29/09/2011
Postato alle
22:30
Lunedì, 02/04/2012
Buonasera ho l seguente file in .h
Codice sorgente - presumibilmente C++
#include <iostream>
#include <vector>
using
namespace
std
;
class
QUEUE_MIN_HEAP
{
public
:
virtual
int
minium
(
)
=
0
;
virtual
void
min_heap_insert
(
int
)
=
0
;
virtual
void
decrease_key
(
int
,
int
)
=
0
;
virtual
int
extract_min
(
)
=
0
;
QUEUE_MIN_HEAP
(
)
{
}
~QUEUE_MIN_HEAP
(
)
{
}
}
;
class
Queue_Min_Heap
:
public
QUEUE_MIN_HEAP
{
vector
<
int
>
coda
;
public
:
int
minium
(
)
{
return
coda
[
0
]
;
}
void
min_heap_insert
(
int
)
;
void
decrease_key
(
int
,
int
)
;
int
extract_min
(
)
;
int
get_size
(
)
{
return
coda.
size
(
)
;
}
void
show
(
)
;
Queue_Min_Heap
(
int
n
)
{
coda.
resize
(
n
)
;
}
~Queue_Min_Heap
(
)
{
coda.
clear
(
)
;
}
private
:
void
min_heapify
(
int
)
;
int
parent
(
int
i
)
{
return
i
/
2
;
}
int
left
(
int
i
)
{
return
2
*
i
+
1
;
}
int
right
(
int
i
)
{
return
2
*
i
+
2
;
}
void
swap
(
int
&
,
int
&
)
;
}
;
Questi sono gli errori ---> [Linker error] undefined reference to `vtable for QUEUE_MIN_HEAP'
ld returned 1 exit status
Grazie in anticipo per l'aiuto
pierotofy
(
Admin
)
Guru^2
Messaggi:
6230
Iscritto:
04/12/2003
Postato alle
22:55
Lunedì, 02/04/2012
Questi:
Codice sorgente - presumibilmente C/C++
void min_heap_insert(int);
void decrease_key(int,int);
int extract_min();
Li hai definiti? Posta anche il resto del sorgente.
Il mio blog:
https://piero.dev
Neo25
(Normal User)
Newbie
Messaggi:
16
Iscritto:
29/09/2011
Postato alle
23:06
Lunedì, 02/04/2012
si li ho definiti in un cpp:
Codice sorgente - presumibilmente C++
//Metodo di inserimento nella coda
void
Queue_Min_Heap
::
min_heap_insert
(
int
key
)
{
coda.
resize
(
coda.
size
(
)
+
1
)
;
coda
[
coda.
size
(
)
-
1
]
=
RAND_MAX
;
decrease_key
(
coda.
size
(
)
-
1,key
)
;
}
//Metodo decremento di una chiave
void
Queue_Min_Heap
::
decrease_key
(
int
i,
int
key
)
{
if
(
i
>
coda.
size
(
)
)
{
cout
<<
endl
<<
endl
<<
endl
<<
" LA POSIZIONE E' INESISTENTE"
;
}
else
if
(
key
>
coda
[
i
]
)
{
cout
<<
endl
<<
endl
<<
" ERRORE:la nuova chiave e' maggiore di quella corrente"
;
cout
<<
endl
<<
endl
<<
endl
;
}
else
{
/*Ciclo while scambia padre con figlio finchè non si raggiunge la radice
la radice e il nodo padre è > del figlio */
coda
[
i
]
=
key
;
while
(
i
>
0
&&
coda
[
parent
(
i
)
]
>
coda
[
i
]
)
{
swap
(
coda
[
i
]
,coda
[
parent
(
i
)
]
)
;
i
=
parent
(
i
)
;
}
}
}
/*Metodo che elimina e estrae l'elemento minimo dall coda*/
int
Queue_Min_Heap
::
extract_min
(
)
{
int
min
=
coda
[
0
]
;
coda
[
0
]
=
coda
[
coda.
size
(
)
-
1
]
;
coda.
resize
(
coda.
size
(
)
-
1
)
;
min_heapify
(
0
)
;
return
min
;
}
Neo25
(Normal User)
Newbie
Messaggi:
16
Iscritto:
29/09/2011
Postato alle
23:07
Lunedì, 02/04/2012
minium () sta stesso nella classe visto che era di una riga sola.
pierotofy
(
Admin
)
Guru^2
Messaggi:
6230
Iscritto:
04/12/2003
Postato alle
16:10
Martedì, 03/04/2012
Prova a definire ~QUEUE_MIN_HEAP(){} come virtual.
Il mio blog:
https://piero.dev
Neo25
(Normal User)
Newbie
Messaggi:
16
Iscritto:
29/09/2011
Postato alle
12:37
Venerdì, 06/04/2012
all improvviso funziona senza nessun cambiamento mmm
grazie dell aiuto cmq