c++ problemas con una estructura sencilla.

Imagen de lilezek
0 puntos

Buenos días. Estoy programando una estructura sencilla de string para extender sus funciones y ampliarlas. Nada más empezar a crear la estructura ya me da problemas el programa, finalizando en código 6... Aquí la estructura:

struct XString

{

private:
	string __self;
public:
	XString()
	{
		__self = (string)"";
	}
	XString(string e)
	{
		__self = e;
	}
	~XString()
	{
		__self.~basic_string();
	}
};

Mi programa:

int main()
{	
	XS::XString str("Prueba");
	return 0;
}

No hay errores de precompilación, pero mira lo que sale en la terminal:

EXECUTING:
/home/**/pruebaanjunta/Debug/src/pruebaanjunta 
----------------------------------------------
*** glibc detected *** /home/**/pruebaanjunta/Debug/src/pruebaanjunta: double free or corruption (fasttop): 0x0000000000ac3010 ***
======= Backtrace: =========
/lib/libc.so.6[0x7f649c551cb8]
/lib/libc.so.6(cfree+0x76)[0x7f649c554276]
/usr/lib/libstdc++.so.6(_ZNSsD1Ev+0x3d)[0x7f649cd8f50d]
/home/**/pruebaanjunta/Debug/src/pruebaanjunta[0x400ae5]
/home/**/pruebaanjunta/Debug/src/pruebaanjunta[0x400a09]
/lib/libc.so.6(__libc_start_main+0xe6)[0x7f649c4f85a6]
/home/**/pruebaanjunta/Debug/src/pruebaanjunta[0x400879]
======= Memory map: ========
00400000-00401000 r-xp 00000000 08:05 8225359                            /home/**/pruebaanjunta/Debug/src/pruebaanjunta
00600000-00601000 r--p 00000000 08:05 8225359                            /home/**/pruebaanjunta/Debug/src/pruebaanjunta
00601000-00602000 rw-p 00001000 08:05 8225359                            /home/**/pruebaanjunta/Debug/src/pruebaanjunta
00ac3000-00ae4000 rw-p 00ac3000 00:00 0                                  [heap]
7f6498000000-7f6498021000 rw-p 7f6498000000 00:00 0 
7f6498021000-7f649c000000 ---p 7f6498021000 00:00 0 
7f649c4da000-7f649c642000 r-xp 00000000 08:05 450613                     /lib/libc-2.9.so
7f649c642000-7f649c842000 ---p 00168000 08:05 450613                     /lib/libc-2.9.so
7f649c842000-7f649c846000 r--p 00168000 08:05 450613                     /lib/libc-2.9.so
7f649c846000-7f649c847000 rw-p 0016c000 08:05 450613                     /lib/libc-2.9.so
7f649c847000-7f649c84c000 rw-p 7f649c847000 00:00 0 
7f649c84c000-7f649c862000 r-xp 00000000 08:05 450578                     /lib/libgcc_s.so.1
7f649c862000-7f649ca62000 ---p 00016000 08:05 450578                     /lib/libgcc_s.so.1
7f649ca62000-7f649ca63000 r--p 00016000 08:05 450578                     /lib/libgcc_s.so.1
7f649ca63000-7f649ca64000 rw-p 00017000 08:05 450578                     /lib/libgcc_s.so.1
7f649ca64000-7f649cae8000 r-xp 00000000 08:05 450641                     /lib/libm-2.9.so
7f649cae8000-7f649cce7000 ---p 00084000 08:05 450641                     /lib/libm-2.9.so
7f649cce7000-7f649cce8000 r--p 00083000 08:05 450641                     /lib/libm-2.9.so
7f649cce8000-7f649cce9000 rw-p 00084000 08:05 450641                     /lib/libm-2.9.so
7f649cce9000-7f649cdda000 r-xp 00000000 08:05 12157034                   /usr/lib/libstdc++.so.6.0.10
7f649cdda000-7f649cfda000 ---p 000f1000 08:05 12157034                   /usr/lib/libstdc++.so.6.0.10
7f649cfda000-7f649cfe1000 r--p 000f1000 08:05 12157034                   /usr/lib/libstdc++.so.6.0.10
7f649cfe1000-7f649cfe3000 rw-p 000f8000 08:05 12157034                   /usr/lib/libstdc++.so.6.0.10
7f649cfe3000-7f649cff6000 rw-p 7f649cfe3000 00:00 0 
7f649cff6000-7f649d016000 r-xp 00000000 08:05 450598                     /lib/ld-2.9.so
7f649d1f4000-7f649d1f7000 rw-p 7f649d1f4000 00:00 0 
7f649d212000-7f649d215000 rw-p 7f649d212000 00:00 0 
7f649d215000-7f649d216000 r--p 0001f000 08:05 450598                     /lib/ld-2.9.so
7f649d216000-7f649d217000 rw-p 00020000 08:05 450598                     /lib/ld-2.9.so
7fff26cd9000-7fff26cee000 rw-p 7ffffffea000 00:00 0                      [stack]
7fff26cf3000-7fff26cf4000 r-xp 7fff26cf3000 00:00 0                      [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]

----------------------------------------------
Program has been terminated receiving signal 6 (Aborted)
Press the Enter key to close this terminal ...