Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [c++] [oop] valori di default per gli attributi?

    ciao ragazzi..

    c'è un modo per fare questo?

    codice:
    class MyClass{
     MyClass(){blabla}
     string myString = "ciao";
    }
    cioè avere ad ogni istanza la variaible myString settata a "ciao"..

    oppure devo fare tutto per forza usando il costruttore?

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381

    Re: [c++] [oop] valori di default per gli attributi?

    codice:
    class MyClass{
     MyClass() : myString ("ciao")  {blabla}
     string myString;
    }
    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.

  3. #3
    OMG


    quant'è brutto O_O

  4. #4
    Originariamente inviato da xnavigator
    quant'è brutto O_O
    E soprattutto è piuttosto ingarbugliato da utilizzare se devi fare operazioni non banali con i parametri del costruttore prima di inizializzare i campi. D'altra parte non saprei come semplificarlo.

    Tieni presente inoltre che se inizializzi più campi con quella sintassi - e non ne puoi fare a meno se hai dei reference o degli oggetti inizializzabili solo tramite costruttore come campi della classe - l'ordine di inizializzazione non è quello specificato nel costruttore, ma quello secondo cui i campi sono stati dichiarati nella dichiarazione della classe.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Originariamente inviato da xnavigator
    OMG


    quant'è brutto O_O
    Da quando efficienza e versatilità sono brutte?
    ;-)

  6. #6
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Originariamente inviato da xnavigator
    OMG


    quant'è brutto O_O
    (Parafrasando Humphrey Bogart nel film L'ultima minaccia.)
    E' il C++ e tu non ci puoi fare niente. Niente.
    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.

  7. #7
    non capisco quale fosse il problema del c++ ad accettare (come tutti i linguaggi moderni) una sintassi del genere:

    class Class1{
    string myS = "ciao";
    }

    semplice e pulita...
    vabè fa niente...


    @MItaly:
    grazie per le sempre dettagliate spiegazioni ma non credo che userò quella sintassi... vermenete non mi piace proprio

  8. #8
    Originariamente inviato da xnavigator
    non capisco quale fosse il problema del c++ ad accettare (come tutti i linguaggi moderni) una sintassi del genere:

    class Class1{
    string myS = "ciao";
    }

    semplice e pulita...
    ma, come minimo, limitante.

    un po' come quelli che venendo da access ed accostandosi ad oracle si lamentano della mancanza dei campi autoincrementali.

    EDIT:
    Originariamente inviato da xnavigator
    non credo che userò quella sintassi... vermenete non mi piace proprio
    a parte che in certe situzioni sei obbligato ad utilizzare quella sintassi, ma se non lo farai a priori quando potrai, semplicemente sottoutilizzerai l'espressività del C++.
    ;-)

  9. #9
    Originariamente inviato da MacApp
    ma, come minimo, limitante.
    bhè detto da uno che usa the come prefisso per i nomi degli argometni è tutto..

  10. #10
    Originariamente inviato da xnavigator
    bhè detto da uno che usa the come prefisso per i nomi degli argometni è tutto..
    http://it.wikipedia.org/wiki/Dogcow

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.