Articles of dichiarazione

Ridefinizione consentita in C ma non in C ++?

Perché questo codice funziona in C ma non in C ++? int i = 5; int i; // but if I write int i = 5; again I get error in C also int main(){ // using i }

C ++ 11: dichiarazione dei membri di dati non statici come “auto”

C ++ 11 consente di dichiarare membri di dati non statici come “auto” se sono inizializzati nella dichiarazione? Per esempio: struct S { auto x = 5; // in place of ‘int x = 5;’, which is definitely allowed }; GCC 4.7 rifiuta il codice sopra, mentre accetta int x = 5; . Supponendo che […]

Esiste un uso per le dichiarazioni di funzioni all’interno delle funzioni?

Possiamo dichiarare funzioni all’interno di funzioni (volevo una variabile locale, ma analizza come una dichiarazione di funzione): struct bvalue; struct bdict { bdict(bvalue); } struct bvalue { explict operator bdict() const; } struct metainfo { metainfo(bdict); } void foo(bvalue v) { metainfo mi(bdict(v)); // parses as function declaration metainfo mi = bdict(v); // workaround // […]

Qual è lo scopo di una dichiarazione come int (x); o int (x) = 10;

Se osservate la grammatica per *declarator*s in §8/4 noterete che un noptr-declarator può essere scritto come ( ptr-declarator ), cioè, può essere scritto come ( declarator-id ), che convalida dichiarazioni come quelle nel titolo. Di fatto questo codice viene compilato senza problemi: #include struct A{ int i;}; int (x) = 100; A (a) = {2}; […]

Dichiarazioni complesse

Come interpreto dichiarazioni complesse come: int * (* (*fp1) (int) ) [10]; —> declaration 1 int *( *( *[5])())(); ——–> declaration 2 C’è qualche regola da seguire per capire le dichiarazioni di cui sopra?

Cosa sono le dichiarazioni e i dichiaratori e in che modo i loro tipi sono interpretati dallo standard?

Come esattamente lo standard definisce che, ad esempio, float (*(*(&e)[10])())[5] dichiara una variabile di tipo “riferimento a matrice di 10 puntatore a function of () che restituisce puntatore all’array di 5 float “? Ispirato alla discussione con @DanNissenbaum

Definizione della variabile all’interno dell’istruzione switch

Nel seguente codice, perché la variabile non ha assegnato il valore 1 ? #include int main(void) { int val = 0; switch (val) { int i = 1; //i is defined here case 0: printf(“value: %d\n”, i); break; default: printf(“value: %d\n”, i); break; } return 0; } Quando compilo, ricevo un avvertimento sul fatto di […]

Dichiarare e inizializzare una variabile in un’istruzione condizionale o di controllo in C ++

In Stroustrup’s The C ++ Programming Language: Special Edition (3 ° Ed) , Stroustrup scrive che la dichiarazione e l’inizializzazione delle variabili nei condizionali delle dichiarazioni di controllo non solo è permessa, ma incoraggiata. Scrive che lo incoraggia perché riduce lo scopo delle variabili al solo scopo per cui sono richieste. Quindi qualcosa del genere […]

Qual è la differenza tra IF-ELSE e SWITCH?

Qualcuno può spiegarmelo per favore?

Significato di = cancella dopo la dichiarazione della funzione

class my_class { … my_class(my_class const &) = delete; … }; Cosa significa = delete significa in quel contesto? Ci sono altri “modificatori” (diversi da = 0 e = delete )?