Casa Finanza personale Espressioni e dichiarazioni in programmazione C ++ - dummies

Espressioni e dichiarazioni in programmazione C ++ - dummies

Sommario:

Video: Corso C - C++ ITA - 8 Funzioni 2024

Video: Corso C - C++ ITA - 8 Funzioni 2024
Anonim

Parte di C ++ per Dummies Cheat Sheet

Per eseguire un calcolo nel programma C ++ hai bisogno di un'espressione. Un'espressione è un'affermazione che ha sia un valore che un tipo. Nel programma C ++, una dichiarazione è una dichiarazione che definisce una variabile o è un "serbatoio di riserva" per una sorta di valore come un numero o un carattere.

Espressioni

Espressioni assumono una delle seguenti forme:

objName // per un'espressione di operatore oggetto semplice // per operatori unari expr1 operatore expr2 // per operatori binari expr1? expr2: expr3 // per l'operatore ternario funcName ([elenco argomenti]); // per chiamate di funzioni

Espressioni letterali

Un letterale è una forma di espressione costante. I vari tipi di letterali sono definiti nella seguente tabella.

Esempio Tipo
1 int
1L lungo int
1LL lungo int lungo
1. 0 doppio
1. 0F float
'1' char
"una stringa" char * (terminato automaticamente con un carattere null)
L "a string" wchar_t * > u8 "questa è una stringa UTF-8 con un carattere UTF-8: u2018"
char8_t * u "questa è una stringa UTF-16 con un carattere UTF-16: u2018"
char16_t * U "questa è una stringa UTF-32 con un carattere UTF-32:
U00002018"

char32_t *

vero, falso
bool 0b101
binario (C ++ 2014 standard)
Dichiarazioni

Le dichiarazioni utilizzano sia tipi intrinseci che definiti dall'utente. I tipi intrinseci sono

[] char [] wchar_t [] [] int float [long] double bool

Le dichiarazioni hanno una delle seguenti forme:

[] [const] tipo var [= espressione]; // variable [] [const] type array [size] [= {lista}]; // array [const] type object [(elenco argomenti)]; // object [const] type object [= {argument list}]; // alternativa [const] tipo * [const] ptr [= espressione del puntatore]; // tipo di puntatore & refName = oggetto; // tipo di riferimento fnName ([elenco argomenti]); // function

La parola chiave auto può essere usata se C ++ può determinare il tipo di variabile stessa:

auto var = 1L; // il tipo di var è long int
La parola chiave decltype estrae il tipo di un'espressione. Questo tipo può quindi essere utilizzato ovunque venga utilizzato un nome di tipo. Ad esempio, l'esempio seguente utilizza decltype per dichiarare una seconda variabile con lo stesso tipo di una variabile esistente:

decltype (var1) var2; // il tipo di var2 è lo stesso di var1

Una definizione di funzione ha il seguente formato:

// funzione semplice [] tipo fnName (elenco argomenti) {…} // funzione membro definita al di fuori della classe [inline] tipo Classe:: func (elenco argomenti) [const] {…} // costruttore / distruttori possono anche essere definiti al di fuori della classe Classe:: Classe ([elenco argomenti]) {…} Classe:: ~ Classe () {… } // costruttori / distruttori possono essere cancellati o default // al posto della definizione Classe:: Class ([argument list]) =; Classe:: ~ Classe () =;

Un operatore sovraccarico ha l'aspetto di una definizione di funzione.Gli operatori più sovraccarichi possono essere scritti come membri o semplici funzioni. Quando viene scritto come funzione membro, * questo è il primo argomento assunto per l'operatore:

MyClass e operatore + (const MyClass & m1, const MyClass & m2); // simple MyClass & MyClass:: operator + (const MyClass & m2); // membro;
Gli utenti possono anche definire i propri tipi usando le parole chiave class o struct:

ClassName [: [virtuale] [pubblico] BaseClass] {: // costruttore Nomi ([elenco arg]] ClassName () [=;] // destructor [virtuale] ~ ClassName () <{…} | [=; > // dati pubblici membri digitano dataMemberName [= initialValue]; // funzioni membro pubbliche tipo memberFunctionName ([elenco arg]] [{…}] // const tipo funzione membro memberFunctionName ([elenco argomenti]) const [{…}] // funzioni membro virtuali tipo virtuale memberFunctionName ([elenco arg]) [{…}]; // pure virtual member functions virtual type memberFunctionName ([arg lista]) = 0; // funzione che deve sovrascrivere un tipo di funzione di base member memberFunctionName ([arg lista]) override; // una funzione che non può essere sovrascritta in un tipo di sottoclasse memberFunctionName ([arg lista]) final;};

Inoltre, un costruttore con un singolo argomento può essere contrassegnato come un significato esplicito che non verrà utilizzato in una conversione implicita da un tipo all'altro. Contrassegnare un costruttore come predefinito significa "usare la definizione predefinita del costruttore C ++". Contrassegnare un costruttore come delete rimuove la definizione di costruttore C ++ predefinita.

C ++ supporta due tipi di tipi enumerati. Il seguente tipo di enumerazione precedente non crea un nuovo tipo:

enum STATE {DC, // ottiene 0 ALABAMA, // ottiene 1 ALASKA, // ottiene 2 ARKANSAS, // ottiene 3 // … e così via}; int n = ALASKA; // ALASKA è di tipo int

Per impostazione predefinita una singola voce è di tipo int ma può essere modificata nello standard C ++ 2011:

enum ALFABETO: char {A = 'a', // gets 'a' B, // ottiene 'b' C, // ottiene 'c' // … e così via}; char c = A; // A è di tipo char

C ++ 2011 consente un secondo formato che crea un nuovo tipo:

// la seguente enumerazione definisce un nuovo tipo STATE enum class STATE {DC, // ottiene 0 ALABAMA, // ottiene 1 ALASKA, // ottiene 2 ARKANSAS, // ottiene 3 // … e così via}; STATO s = STATO:: ALASKA; // ora STATE è un nuovo tipo // il seguente utilizza una classe enum di tipo sottostante differente ALPHABET: char {A = 'a', // ottiene 'a' B, // ottiene 'b' C, // ottiene 'c ' //… e così via}; ALFABETO c = ALFABETO:: A; // A è di tipo ALPHABET
Le dichiarazioni dei modelli hanno un formato leggermente diverso:

// tipo T è fornito dal programmatore in uso template type Nome funzione ([arg lista]) template class ClassName {{…}};
Espressioni e dichiarazioni in programmazione C ++ - dummies

Scelta dell'editore

Come utilizzare le funzionalità dell'app Klout su dispositivi Apple - dummies

Come utilizzare le funzionalità dell'app Klout su dispositivi Apple - dummies

L'esperienza mobile di Klout è più limitato rispetto al sito web completo. Tuttavia, molte funzionalità sono ancora disponibili con l'app per dispositivi mobili, incluso dare + K ai tuoi influenzatori, controllare il tuo punteggio Klout e apportare semplici modifiche al tuo profilo. E con l'implementazione di Klout per il tuo iPhone Passbook puoi persino usare Klout per ottenere ...

Metriche dei social media: App Android SDK di Google Analytics - dummies

Metriche dei social media: App Android SDK di Google Analytics - dummies

Tracciamento delle metriche di un'applicazione ( un'app) è stata semplificata, ma le app sono ancora isolate. Puoi tenere traccia di ogni app, ma le soluzioni sono ancora in fase di creazione per tenere traccia di tutte le app. Per andare avanti con Google Analytics SDK per la tua app Android, segui questi passaggi: Scarica l'SDK di Google Analytics per Android. Aggiungi la libreria libGoogleanalytics. jar ...

Metriche sui social media: individuazione del momento di trazione con Google+ - dummies

Metriche sui social media: individuazione del momento di trazione con Google+ - dummies

In i social media, il momento di trazione potrebbe anche essere chiamato il "miglior tempo per condividere su Google+ o altri siti sociali. "Il momento migliore per te potrebbe non essere il momento migliore per i tuoi colleghi generatori di contenuti. (Il merito di questo suggerimento principale va a Christopher Penn che per primo condivise la sua osservazione sulla ricerca ...

Scelta dell'editore

Combinazione di due foto sulla tua Nikon D3400 con sovrapposizione immagini - manichini

Combinazione di due foto sulla tua Nikon D3400 con sovrapposizione immagini - manichini

L'opzione Sovrapposizione immagini sulla Il menu di ritocco di Nikon D3400 consente di unire due foto in una. Questa opzione è stata utilizzata per combinare una foto di un lupo mannaro, mostrato a sinistra, con una scena da giardino notturno, mostrata nel mezzo. Il risultato è l'immagine spettrale mostrata a destra. Oooh, spaventoso! Su ...

Scelta di una modalità Esposizione per una Nikon DSLR - manichini

Scelta di una modalità Esposizione per una Nikon DSLR - manichini

La prima impostazione da prendere in considerazione quando si le riprese con la tua Nikon D3100, D5100 o D7000 sono la modalità di esposizione, che puoi selezionare tramite la ghiera dei modi. La tua scelta determina la quantità di controllo che hai rispetto a due impostazioni di esposizione critiche - diaframma e tempo di posa - oltre a molte altre opzioni, incluse quelle relative ...

Scelta del formato immagine JPEG per una reflex Nikon - dummies

Scelta del formato immagine JPEG per una reflex Nikon - dummies

Offerte Nikon D3100, D5100 o D7000 i due tipi di file comuni nella maggior parte delle fotocamere digitali odierne: JPEG e Camera Raw, o semplicemente Raw in breve, che passa dallo specifico moniker NEF (Nikon Electronic Format) sulle fotocamere Nikon. Il tipo di file, talvolta noto anche come formato file, determina come i dati dell'immagine ...

Scelta dell'editore

Comprensione della struttura delle classi Java - dummies

Comprensione della struttura delle classi Java - dummies

Impossibile creare un'applicazione Java senza creare una classe. Tuttavia, i modi in cui si usano le classi all'inizio quando si apprendono su di essi sono stati relativamente semplicistici - Java è in grado di avere una complessità considerevolmente maggiore, che è il punto di questo capitolo. Le classi hanno una struttura specifica. Proprio come i progetti ...

Come utilizzare i metodi astratti in Java - dummies

Come utilizzare i metodi astratti in Java - dummies

Sia le interfacce che le classi astratte hanno metodi astratti in Java. Ma i metodi astratti giocano ruoli leggermente diversi in questi due tipi di tipi di riferimento. Come puoi tenere tutto dritto nella tua mente? La prima cosa da fare è ricordare che nessuno impara a conoscere i concetti di programmazione orientata agli oggetti senza ottenere molti ...

Come utilizzare l'interfaccia CharSequence in Java - dummies

Come utilizzare l'interfaccia CharSequence in Java - dummies

L'API Java include un'interfaccia utile chiamata CharSequence. Tutte e tre queste classi - String, StringBuilder e StringBuffer - implementano questa interfaccia. Questo metodo esiste principalmente per consentire di utilizzare String, StringBuilder e StringBuffer in modo intercambiabile. A tal fine, molti dei metodi delle classi String, StringBuilder e StringBuffer utilizzano CharSequence come parametro ...