Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di ing82
    Registrato dal
    Sep 2014
    Messaggi
    177

    [C++] Istanziare un vector di una classe base dentro una classe derivata

    è possibile fare la seguente cosa, cioè creare un 'istanza vector di una delle classi base? Altrimenti cosa dovrei fare?

    Aggiungo due domande:
    1. se mi serve un dato membro di vector dentro una classe, anche solo di un tipo predefinito, ad es double, devo usare "std::vector <double>" o basta "vector <double>"?
    2. stessa cosa per string, dichiaro "std::string stringa;" oppure solamente "string stringa"?


    codice:
    class classe1
    {
    public:
    ...//funzioni membro che elaborano i datimembro protected
    protected:
    double datomembro1;
    double datomembro2;
    double datomembro3;
    }
    
    class classe2
    {
    ...
    }
    
    class classe3
    {
    ...
    }
    
    class classe4:public classe1, classe2, classe3
    {
    public:
    ...//quello che serve
    protected:
    std::vector <classe1> vettore;
    ...//altre cose che servono
    }

    Grazie

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Puoi fare quello che vuoi con un tipo definito.
    1) 2) forse dovresti chiarirti le idee sull'uso dei namespace(s).
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    156
    Domanda più che legittima in realtà.
    Risposta: dipende
    Dipende da cosa stai facendo
    Se pensi di usare queste classi solo all'interno del programma che stai facendo e nello stesso file del main, puoi anche omettere std:: prima di vector SE nel programma giá "usi il namespace std" (using namespace std, non saprei come tradurlo )
    Se invece stai preparando una libreria di classi potrebbe essere consigliabile specificare std:: perché magari il programma che utilizzerà quella libreria non usa il namespace std ed il compilatore impedirebbe la compilazione

  4. #4
    Utente di HTML.it L'avatar di ing82
    Registrato dal
    Sep 2014
    Messaggi
    177
    Quote Originariamente inviata da Rising1 Visualizza il messaggio
    Se invece stai preparando una libreria di classi potrebbe essere consigliabile specificare std:: perché magari il programma che utilizzerà quella libreria non usa il namespace std ed il compilatore impedirebbe la compilazione
    Fatto centro, infatti è quello che mi succede e non capivo perchè: gli esempi che ho trovato in giro non avevano davanti "std::", però mi sa che erano tutti riferiti al primo caso da te descritto.
    Questa sera quindi provo così.
    Grazie

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.