Problemi di classi

di il
4 risposte

Problemi di classi

Salve a tutti, avrei bisogno di una mano per risolvere questo esercizio in C++ ho già scritto buona parte del codice ma ritorna sempre lo stesso errore Id returned 1 exit status.
credo sia un problema legato al costruttore della classe C, ma non riesco a capire quale, ormai sono giorni che ci sbatto la testa !!! grazie in anticipo per l'aiuto

#include<iostream>
#include<stdlib.h>
#include<time.h>
#include<stdio.h>
using namespace std;
class A
{
	int * arr;
	short len;
	public:
		int v[];
		A(short m,int a,int b)
		{
			
			for(int i=0;i<m;i++)
			arr=&v[i];
			*(++arr)=rand()%(a-b+1)+a;
		}
		virtual double func(short i);
	protected:
		double get(short i)
		{
			return arr[i];
		}
	public:
		short getLen();
};
class B:public A
{
	double p;
	public:
		B(short m,int y,int z, double x):A(m,y,z)
		{
			m=m;y=y;z=z;
		}
		double func(short i,short m)
		{
			
			int* min=v;
			int* max=0;
			for(int i=0;i<m;i++)
			{
				if(*(v)>*max)
				{
					*max=*(v);
				}
				else
				{
					if(*(v)<*min)
					{
						*min=*(v);
					}
				}
				*(v+1);
			}
			return *min,*max;
		}
};
class C:public A
{
	char t;
	public:

		C(short m,int a,int b,char c):A(m,a,b)
		{
		}
		double funct(short i,short n)
		{
			int* media;
			for(int i=0;i<n;i++)
			{
				*media=*(v)+*(media);
				*(v+1);
			}
		}
		string g(char c,short k)
		{
			
		}
};
int main()
{
	
      srand(111222333);     

		int DIM=50;
		A* vett[DIM];
      for(int i=0; i<DIM; i++){
	short n=1+rand()%10;
	if(rand()%2==0)
	  vett[i]= new B(n, rand()%5+1, rand()%11+10, (double) rand()/(RAND_MAX));
	else
	  vett[i]= new C(n, (char) (rand()%('z' - 'a' + 1) + 'a'), rand()%5+1, rand()%11+10);
      }
      return 0;
}

4 Risposte

  • Re: Problemi di classi

    Virtual double func(short i) = 0; // dev'essere virtuale pura
  • Re: Problemi di classi

    shodan ha scritto:


    Virtual double func(short i) = 0; // dev'essere virtuale pura
    grazie mille non mene ero proprio reso conto, sono alle prime armi con classi e funzioni virtuali, se posso chiederti, sapresti dirmi perché il codice continua a stamparmi soltanto gli indirizzi di memoria di vett e non i valori all'interno del array?
  • Re: Problemi di classi

    Quel codice non può compilare ne funzionare: func ha prototipi diversi, il costruttore di A è sbagliato, quello di B fa un'operazione inutile, una func pretenderebbe di restituire due valori, l'altra non restituisce niente. Alcuni puntatori sono usati senza allocazione, altri non li deallochi proprio e non è rispettata la gerarchia UML. Insomma, se fosse un esercizio d'esame non lo passeresti al momento.
  • Re: Problemi di classi

    Grazie della sincerità, ho ancora molto da studiare, fortunatamente ho molto tempo ancora a disposizione, lo sfrutterò cercando di migliorare il più possibile, riscrivo anche il codice già, grazie dell'aiuto.
Devi accedere o registrarti per scrivere nel forum
4 risposte