Questa è una domanda del test dell'intervista in C++ non i compiti.qual è la dimensione di un dato di tipo enum in C++?
#include <iostream>
using namespace std;
enum months_t { january, february, march, april, may, june, july, august, september,
october, november, december} y2k;
int main()
{
cout << "sizeof months_t is " << sizeof(months_t) << endl;
cout << "sizeof y2k is " << sizeof(y2k) << endl;
enum months_t1 { january, february, march, april, may, june, july, august,
september, october, november, december} y2k1;
cout << "sizeof months_t1 is " << sizeof(months_t1) << endl;
cout << "sizeof y2k1 is " << sizeof(y2k1) << endl;
}
uscita:
sizeof months_t è 4
sizeof Y2K è 4
sizeof months_t1 è 4
sizeof y2k1 è 4
Perché le dimensioni di tutti questi 4 byte? Non 12 x 4 = 48 byte?
So che gli elementi di unione occupano la stessa posizione di memoria, ma questo è un enume.
Come nessuno ha menzionato le lezioni di enum? Mi aspetterei che le entasasias C++ vadano oltre il call of duty su una domanda come questa. –
Deconfigurare l'OP è il primo ordine del giorno. Niente ti impedisce di valutare le lezioni di enum. – ObscureRobot
@MattJoiner Vuoi dire che in C++ 11 puoi specificare il _ tipo di carattere _ di un enum, che è il tipo integrale che imita? Per esempio 'enum month: char {january, ...};'. Le enumerazioni di classe, note anche come enumerate, sono un'altra varietà di classi che creano uno spazio dei nomi che racchiude le sue costanti. Il fatto è che le enumerazioni di classe sono sempre di tipo fisso ('int' se non specificato). – rodrigo