![]() |
Sobrecarga de operadores en namespace Hola a todos, estoy haciendo un pequeño programita que consta de 12 clases, las he metido todas dentro de un espacio de nombres que he creado: Código: namespace MyNM {Código: //fichero miespacio.hCódigo: #include "miespacio.h"multiple definition of `MyNM::operator<<(ostream&, uno&)' alguien tiene idea de que estoy haciendo mal? gracias a todos. |
Re: Sobrecarga de operadores en namespace El error del enlazador es por definir el codigo en el archivo de inclusion (.H), si solo lo declaras en el archivo de inclusion: Código: ostream &operator<<(ostream &os, const uno &u);Código: namespace MyNM |
Re: Sobrecarga de operadores en namespace No, asi tampoco funciona, ya lo habia probado. El caso es que solo tengo un fichero .h que es en el que defino todas las clases justo dentro de la definicion del namespace, y luego cada clase tiene su .cpp donde desarrollo el codigo de cada una. De todas formas muchas gracias por interesarte. Un saludo. |
Re: Sobrecarga de operadores en namespace Ese codigo solo, tal como te digo funciona perfectamente. Tal vez el problema sea que en cada clase estas definiendo la misma funcion ... ostream &operator<<(ostream &os, const uno &u); ostream &operator<<(ostream &os, const uno &u); ostream &operator<<(ostream &os, const uno &u); En vez de: ostream &operator<<(ostream &os, const uno &u); ostream &operator<<(ostream &os, const dos &u); ostream &operator<<(ostream &os, const tres &u); Dejanos la minima cantidad de codigo que de el error ... |
Re: Sobrecarga de operadores en namespace No, no lo sobrecargo varias veces, solo necesito sobrecargarlo una vez. hago esto: Código: // fichero.hCódigo: // fichero.cpp266 C:\Dev-Cpp\fichero.h expected constructor, destructor, or type conversion before '&' token 266 C:\Dev-Cpp\fichero.h expected `,' or `;' before '&' token |
Re: Sobrecarga de operadores en namespace Bueno, a mi con el VC++ me compila, enlaza y funciona perfectamente esto: fichero.cpp Código: #include <iostream>Código: namespace uno_ |
| La zona horaria es GMT -6. Ahora son las 19:43. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.