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

    [c++]codice pulito e costanti

    ciao.
    Vorrei trovare un metodo per dichiarare le costanti, ho letto che un buon metodo è quello di dichiararle nella classe come private static.
    Io fino ad adesso ho sempre usato le macro(#define CONST_AGE 33).
    E' un metododo piu pulito il primo?
    voi cosa consigliate?
    Inoltre ho visto che google ha messo a disposizione per visual studio una macro che controlla che il codice segua degli standard e da dei messaggi che rimandano alle righe di codice non standardizzato , ce ne sono altri oltre a quello di google?
    mi sembra una buona idea .
    E per le costanti globali ? bisognerebbe utilizzare un namespace globale o una classe creata per questo?
    grazie.

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Di solito io faccio così.
    codice:
    struct FileFlags {
        static const int read = 1;
        static const int write = 2;
        /* ... etc ... */
    };
    
    struct StreamFlags {
        static const int read = 1;
        static const int write = 2;
        /* ... etc ... */
    };
    Nome e scopo di ciò che rappresenta non sono importanti. Quel che importa è: static const arithmetic_type... (funziona anche con bool).
    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
    Anche i namespace con dentro dei const global (o anche degli enum, a seconda del caso) dovrebbero andare bene per lo scopo.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Per le costanti globali credo che in C++11 la maniera più pulita sia utilizzare la parola chiave

    codice:
    constexpr
    K. L. Thompson
    You can't trust code that you did not totally create yourself.
    A. Bogk
    UNIX is user-friendly, it just chooses its friends.

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Scusa Rocco, anche se può essere un fatto lodevole, fare tutti questi interventi sul C++.11 non è che sia produttivo per i thread che, comunque, trattano problematiche relative allo standard precedente.

    Sembra quasi spam ... :-)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Originariamente inviato da oregon
    Scusa Rocco, anche se può essere un fatto lodevole, fare tutti questi interventi sul C++.11 non è che sia produttivo per i thread che, comunque, trattano problematiche relative allo standard precedente.

    Sembra quasi spam ... :-)
    Ti do ragione, comunque riconosco anche che sarebbe utile un uso più diffuso dello standard 11...
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  7. #7

    Re: [c++]codice pulito e costanti

    Originariamente inviato da giuseppe500
    ciao.
    Vorrei trovare un metodo per dichiarare le costanti, ho letto che un buon metodo è quello di dichiararle nella classe come private static.
    Io fino ad adesso ho sempre usato le macro(#define CONST_AGE 33).
    E' un metododo piu pulito il primo?
    voi cosa consigliate?
    Sì, il primo è un metodo più pulito e consigliabile. Nel primo caso la costante è una variabile tipizzata mentre nel secondo (la macro) non hai controllo del tipo.
    ...

  8. #8

    Re: Re: [c++]codice pulito e costanti

    Originariamente inviato da Caiodark
    Sì, il primo è un metodo più pulito e consigliabile. Nel primo caso la costante è una variabile tipizzata mentre nel secondo (la macro) non hai controllo del tipo.
    Ma soprattutto, la #define sostituisce dovunque, mentre le variabili const stanno nel loro scope.
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Originariamente inviato da Scara95
    Ti do ragione, comunque riconosco anche che sarebbe utile un uso più diffuso dello standard 11...
    Il grosso problema è il supporto attuale dei compilatori. A parte g++ aggiornato quasi mensilmente, gli altri implementano qualcosa in ordine sparso.
    La situazione attuale si trova qui:
    http://wiki.apache.org/stdcxx/C++0xCompilerSupport
    per cui al momento il C++11 è letteralmente compiler dependent.
    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.

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.