[C con Clase] Ejemplo 16.3

Alejandro Alcalde algui91 en gmail.com
Jue Sep 23 12:59:31 CEST 2010


Hola, el ejemplo 16.3, de las uniones no me compila.
ejemplo D = {"hasta pronto"};  // Aqui me lanza el error: error: in C++98
‘D’ must be initialized by constructor, not by ‘{...}’

Y warnings:  warning: extended initializer lists only available with
-std=c++0x or -std=gnu++0x

El ejemplo es este:
#include <iostream>
#include <cstring>

using namespace std;

union ejemplo {
    int x;
    double d;
    char cad[8];
    ejemplo(int i) : x(i) {}
    ejemplo(double n) : d(n) {}
    ejemplo(const char *c) {
        strncpy(cad, c, 7);
        cad[7] = 0;
    }
};

int main() {
    ejemplo A(23);
    ejemplo B(123.323);
    ejemplo C("hola a todos");
    ejemplo D = {"hasta pronto"};

    cout << "A: " << A.x << endl;
    cout << "B: " << B.d << endl;
    cout << "C: " << C.cad << endl;
    cout << "D: " << D.cad << endl;

    return 0;
}

-- 
*Saludos, Alejandro A.B.
Mi blog: http://bashyc.blogspot.com/*
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100923/a1e520e7/attachment.html>


Más información sobre la lista de distribución Cconclase