Oppure

Loading
23/12/13 19:25
amreo
il compilatore VS 2010 mi da questi 2 errori, ma non capisco ne la causa ne il significato.
inoltre come si passano i delegate come parametri?

//Nel foglio interstazione(.h)
//[Nella classe Tree::BinTreeInt]
				void visitPreorder(intFunc f);
				void visitPostorder(intFunc f);
				void visitInorder(intFunc f);
				static void visitPreorder(BinTreeInt* nodo,intFunc f);
				static void visitPostorder(BinTreeInt* nodo,intFunc f);
				static void visitInorder(BinTreeInt* nodo,intFunc f);
//[Nella namespace Tree]
typedef int intFunc(int x); //Dovrebbe essere la dichiarazione di un funzione che passa un parametro intero e //restituisce intero
------------------------------------------------------------------------------------------------------------------------------------------------------------------
//Nel foglio Cpp, implementazione delle funzioni, qui mi restituisce entrambi gli errori 	
void BinTreeInt::visitPreorder(intFunc  f)
	{
		// Visita in preorder 
		if (this->exist)
		{
			this->setDato(f(this->dato));
			this->sx->visitPreorder(f);
			this->dx->visitPreorder(f);
		}
	}
	void BinTreeInt::visitPostorder(intFunc f)
	{
		// Visita in preorder 
		if (this->exist)
		{
			this->sx->visitPostorder(f);
			this->dx->visitPostorder(f);
			this->setDato(f(this->dato));
		}
	}
	void BinTreeInt::visitInorder(intFunc f)
	{
		// Visita in preorder 
		if (this->exist)
		{
			this->sx->visitInorder(f);
			this->setDato(f(this->dato));
			this->dx->visitInorder(f);
		}
	}
	void BinTreeInt::visitPreorder(BinTreeInt* nodo, intFunc f)
	{
		// Visita in preorder 
		if (nodo->exist)
		{
			nodo->setDato(f(nodo->dato));
			nodo->sx->visitPreorder(f);
			nodo->dx->visitPreorder(f);
		}
	}
	void BinTreeInt::visitPostorder(BinTreeInt* nodo, intFunc f)
	{
		// Visita in preorder 
		if (nodo->exist)
		{
			nodo->sx->visitPostorder(f);
			nodo->dx->visitPostorder(f);
			nodo->setDato(f(nodo->dato));
		}
	}
	void BinTreeInt::visitInorder(BinTreeInt* nodo, intFunc f)
	{
		// Visita in preorder 
		if (nodo->exist)
		{
			nodo->sx->visitInorder(f);
			nodo->setDato(f(nodo->dato));
			nodo->dx->visitInorder(f);
		}
	}







PERCHE'?:-?
aaa
23/12/13 20:32
nessuno
Beh gli errori sono chiari

C2061: errore di sintassi: identificatore 'identificatore'

e

C2511: 'identificatore': funzione membro in overload non trovata in 'classe'

ma dove li hai?


P.S. Per curiosità ... cosa sarebbe un "foglio" "interstazione" ?
Ultima modifica effettuata da nessuno 23/12/13 20:34
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
23/12/13 20:41
amreo
in realtà ho capito gli errori(più o meno), il secondo errore (C2511) è strano, perchè mi sembra di aver dichiarato tutti i prototipi.

il foglo intestazione(o come si scrive) è un file di codice con estensione .h che contiene le dichiarazioni di classi e prototipi di funzioni. tali prototipi vengono implementati nei file .CPP.
aaa
23/12/13 20:55
nessuno
Non si parla di fogli (non stai usando Excel) ma di "file di intestazione" (file header, i .h) ... prima di fare gli alberi potreste fare la teoria di base minima minima per usare la corretta terminologia.

In ogni caso, ho scritto un po' di codice minimo e gli errori non li ho ... dove l'hai messo il typedef?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
23/12/13 21:35
amreo
dopo la dichiarazione di BTI
ossia:
namespace tree
{
class BinTreeInt
  {
//... con i prototipi interessati e altro
   };

typedef int intFunc(int);
};


(scritto a memoria)
aaa
23/12/13 21:42
nessuno
La typedef va prima della class dove viene usata ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
23/12/13 21:54
amreo
Ok! Grazie
aaa