Estou criando um pequeno programa, que usa as duas funções da biblioteca read.h, abaixo:
#include <new>
#include <string>
#include <cstdio>
#include <fstream>
using namespace std;
using std::string;
void readstr (string &str, int max = 128) //lê uma string com espaços do teclado
{
char *p;
p = new char[max];
gets (p);
str = p;
delete p;
}
void freadstr (ifstream &file, string &str, int max = 128) //lê uma string com espaços de um arquivo
{
char *p;
p = new char[max];
file.getline (p, max);
str = p;
delete p;
}
Mas ocorre que quando compilo o projeto, o compilador que utilizo (Visual C++), gera as seguintes mensagens de erro:
c:\meus programas\ptg\read.h(9) : error C2572: 'readstr' : redefinition of default parameter : parameter 2
c:\meus programas\ptg\read.h(8) : see declaration of 'readstr'
c:\meus programas\ptg\read.h(9) : error C2084: function 'void readstr(std::string &,int)' already has a body
c:\meus programas\ptg\read.h(8) : see previous definition of 'readstr'
c:\meus programas\ptg\read.h(19) : error C2572: 'freadstr' : redefinition of default parameter : parameter 3
c:\meus programas\ptg\read.h(18) : see declaration of 'freadstr'
c:\meus programas\ptg\read.h(19) : error C2084: function 'void freadstr(std::ifstream &,std::string &,int)' already has a body
c:\meus programas\ptg\read.h(18) : see previous definition of 'freadstr'
Aí eu pesquisei no site do Visual Studio sobre o tal erro C2084, que diz que é quando você redefine a mesma função, como no exemplo:
Pergunta
Luiz Rodrigo
Estou criando um pequeno programa, que usa as duas funções da biblioteca read.h, abaixo:
Mas ocorre que quando compilo o projeto, o compilador que utilizo (Visual C++), gera as seguintes mensagens de erro: Aí eu pesquisei no site do Visual Studio sobre o tal erro C2084, que diz que é quando você redefine a mesma função, como no exemplo:Mas aí que eu não entendi: se eu só coloquei uma vez cada função no arquivo (sequer sobrecarreguei-as), como pode acusar esse erro?
Agradeço, desde já, pela ajuda.
Editado por Luiz RodrigoLink para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.