Le classi di tipi C ++ sono? [chiuso]

0

Sto cercando di capire se i tipi C ++ sono classi, ad esempio in Python.

Altrimenti quale tipo di dati è il tipo stesso? Per esempio. int a = 10 cos'è int ? È solo un'etichetta di token utilizzata dal compilatore per decidere lo spazio da allocare alla variabile?

    
posta G M 27.10.2017 - 12:49
fonte

1 risposta

7

Un tipo per una variabile in C ++ fa tre cose principali. Prima di tutto viene utilizzato per determinare la quantità effettiva di memoria per una variabile. La seconda cosa che fa è determinare le operazioni che sono supportate per la variabile. La terza cosa da fare è determinare come i dati vengono trasformati da altri tipi al tipo di variabile e se tale trasformazione è possibile.

Quindi un int che è un tipo incorporato ha una certa dimensione che una variabile int occupa in memoria. Per una serie di ragioni di compatibilità storica, a ritroso, la dimensione di un int varierà tra i diversi tipi di hardware. Su una CPU a 16 bit può essere 16 bit, su una CPU a 32 bit può essere a 32 bit e su una CPU a 64 bit può essere a 64 bit. Tuttavia è sempre firmato. Se desideri specificare la dimensione indipendentemente dall'hardware necessario per utilizzare uno dei tipi più specifici come short o long o long long .

Una variabile int ha anche alcuni operatori e operazioni che possono essere usati con la variabile come l'operatore più (+) per l'addizione e l'operatore di moltiplicazione (*) per la moltiplicazione. Per una variabile int questi operatori sono definiti per fornire comportamenti specifici proprio come per una variabile string hanno comportamenti diversi, ad es. l'operatore più fa concatenazione di stringhe.

Infine una variabile int ha certe trasformazioni che il compilatore genererà per te. Se assegni un float a una variabile int , il compilatore trasformerà il valore di float in un int troncando ogni porzione decimale del valore. Quindi un valore a virgola mobile di 3.456 verrà troncato a 3 e un valore a virgola mobile di 0.123 verrà troncato a 0.

E il compilatore non consentirà alcuni tipi di trasformazioni perché quelle trasformazioni non sono definite per un int . Se definisci una classe che non ha un metodo per trasformare la classe in int e poi prova ad assegnare una variabile di quel tipo a un int il compilatore genererà un messaggio di errore.

La parola "type" in C ++ o C o la maggior parte delle lingue che usano variabili di tipo statico è un tipo di classificazione variabile utilizzata dal compilatore per aiutare i programmatori a evitare errori e per aiutare il compilatore ad allocare la memoria in modo più efficiente e generare una macchina più efficiente codice.

Un tipo è un modo per classificare le variabili. Linguaggi come JavaScript non usano il tipo statico ma piuttosto il tipo dinamico. In JavaScript o PHP il tipo di una variabile dipenderà dal valore assegnato per ultimo alla variabile e le lingue generano automaticamente molte conversioni per te.

In C ++, come in C e Java, ci sono tipi integrati e ci sono tipi definiti dal programmatore. I tipi di variabile come int o char sono costruiti in tipi noti anche come Plain Old Data poiché questi tipi hanno rappresentazioni hardware dirette.

Un programmatore può creare tipi definiti in C ++ in diversi modi. Il più comune è utilizzando la parola chiave class o la parola chiave struct per definire una classe che può essere utilizzata come tipo quando si definiscono variabili o funzioni.

Con i nuovi standard, C ++ 11 e successivi, c'è una nuova parola chiave auto che può essere usata quando si definisce una variabile. Questo è un modo per dichiarare il tipo di una variabile usando un'espressione sul lato destro dell'operatore di assegnazione per generare un valore con un particolare tipo e assegnare sia il valore che il tipo alla variabile che si sta definendo. Una volta fatto, il tipo della variabile non può essere cambiato, tuttavia utilizzando auto può essere davvero utile.

    
risposta data 27.10.2017 - 13:54
fonte

Leggi altre domande sui tag