Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Akkawe
    Registrato dal
    Dec 2011
    Messaggi
    12

    [c++] error c2664

    Salve,
    ho definito nel main (estratto):
    codice:
    Pile *pmatr1[2]; 
    	pmatr1[0]=&palo;
    	pmatr1[1]=&palo;
    	matr1=Stiff.getKMatrix(pmatr1);
    In cui Pile e' una classe derivata di Element classe base astratta.
    Il metodo dell'oggetto Stiff e' dichiatato in questo modo:
    codice:
    double ***getKMatrix( Element *p_objs[]); //passing an array of pointers to objects to get the stiffnes matrices (pointers to matrix)
    Senza ultima riga del main il programma viene compilato correttamente.
    L'errore e' riferito all ultima riga :
    error C2664: 'KMDMatrix::getKMatrix' : cannot convert parameter 1 from 'Pile *[2]' to 'Element *[]'

    Non riesco a capire cosa studiare per risolvere l-errore. Io per ora son convito di passargli un array di puntatori all=oggetto palo della classe Pile.
    Dove sbaglio?
    grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    La funzione accetta un vettore di puntatori di tipo Element

    Element *p_objs[]

    e non un vettore di puntatori di tipo Pile

    Pile *pmatr1[]
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di Akkawe
    Registrato dal
    Dec 2011
    Messaggi
    12
    Originariamente inviato da oregon
    La funzione accetta un vettore di puntatori di tipo Element

    Element *p_objs[]

    e non un vettore di puntatori di tipo Pile

    Pile *pmatr1[]
    Ma Pile e' una classe derivata di Element (classe base astratta).

    EDIT:
    ho cambiato da Element a Pile e il programma viene compilato ma non e' quello che cercavo (in questo modo se aggiungo una classe derivata devo aggiungere ogni volta un metodo).
    C'e' una altra via?

  4. #4
    Utente di HTML.it L'avatar di Akkawe
    Registrato dal
    Dec 2011
    Messaggi
    12
    E' possibile in questo caso utilizzare un casting dinamico o statico se ho una classe base astratta?

  5. #5
    Utente di HTML.it L'avatar di Akkawe
    Registrato dal
    Dec 2011
    Messaggi
    12
    Inserendo gli oggetti della classe Pile derivata di Element in un vector:
    vector <Element *> pointer;
    non ho problemi di conversione e cosi funziona.

    ovviamente non so il perche'

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.