Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c++ MFC]get element from array

    ciao.

    ho una struttura
    tagSelectionGroup :
    codice:
    typedef struct SelectionGroup
    {
    	int EntityType;
    	int EntityIdCMP; 
    	CString EntityId2000;
    	CArray<CString,CString> ElementsCMP;
    }tagSelectionGroup;
    e una variabile
    codice:
    tagSelectionGroup tag;
    e un array (pieno) cosi:
    CArray<tagSelectionGroup,tagSelectionGroup>* pData


    codice:
    for(int i = 0; i< pData->GetSize(); i++)
    {
       tag = pData->GetAt(i);
    }

    in compilazione mi a quest errore:

    c:\MyProjects\ error C2582: 'operator =' function is unavailable in 'SelectionGroup'

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    manca l'operatore di assegnazione per la struct

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    ma se volessi "tirare fuori" un oggetto(di una struttura) da un array di quella struttura devo per forza implementare l'operatore "=" ? o c'è un modo piu semplice?
    il compilatore mi da anche quest errore:
    in
    codice:
    tagSelectionGroup tagArray = pData->GetAt(i);
    c:\MyProjects\CmpFrg\CmpImportApi\SapBase.cpp(2744 ): error C2558: struct 'SelectionGroup' : no copy constructor available or copy constructor is declared 'explicit'

  4. #4
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    non puoi copiare oggetti (perchè così copi perchè non sono puntatori) senza definire il costruttore di copia o l'operatore di assegnazione..

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    e il costruttore di copia come lo creo?
    mi fai un esempio?
    Grazie.

  6. #6
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    codice:
    typedef struct SelectionGroup
    {
    	int EntityType;
    	int EntityIdCMP; 
    	CString EntityId2000;
    	CArray<CString,CString> ElementsCMP;
    
            SelectionGroup(SelectionGroup& group)
            {
               //qui fai la copia
            }
    
    }tagSelectionGroup;
    attenzione che non sono sicuro funzioni così per le strutture (ma sono sicuro funzioni per gli oggetti)

    cmq questa è la base della programmazione oop del c++, se non la conosci ritornerei sul libro a ripassare

  7. #7
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    L'unica differenza tra struct e class in C++ consiste nella visibilità dei dati: public nelle struct, private nelle class (se non specificato diversamente.)
    Da questo punto di vista le struct in C++ sono inutili.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  8. #8
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    manca il const nel mio costruttore di copia.. ops

    non sapevo questa cosa delle strutture del c++.. attendo commenti e intanto mi informo

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 © 2024 vBulletin Solutions, Inc. All rights reserved.