Ir ao conteúdo

Posts recomendados

Postado

Quando eu tento compilar só os metodos da classe da um erro :

Codigo:

#include <iostream>
#include <stdlib.h>
#include "grade.hpp"
Grade::Grade(){
int i;
int j;
NumLinha = 50;
NumColuna = 50;
Matriz =(char**)malloc(NumLinha*sizeof(sizeof(char*)));
for(i = 0; i < NumLinha; i++){
Matriz = (char*)malloc(NumColuna*sizeof(char));
}
for(i = 0;i < NumLinha;i++){
for(j = 0; j < NumColuna;j++){
Matriz[j] = '-' ;
}
}
}

 

Erro:

/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o: na função `_start':
(.text+0x20): referência indefinida para `main'
collect2: error: ld returned 1 exit status
 

fiz uma main simples so pra testar , e piora

inclue <iostream>
#include "grade.cpp"
using namespace std;
int main()
{
Grade grade1;
return 0;
}


 

erro:

 

/tmp/ccFd2GKV.o: na função `Grade::Grade()':
grade.cpp:(.text+0x0): múltipla definição de `Grade::Grade()'
/tmp/cceMo1wz.o:main.cpp:(.text+0x0): definido primeiramente aqui
/tmp/ccFd2GKV.o: na função `Grade::Grade()':
grade.cpp:(.text+0x0): múltipla definição de `Grade::Grade()'
/tmp/cceMo1wz.o:main.cpp:(.text+0x0): definido primeiramente aqui
/tmp/cceMo1wz.o: na função `main':
main.cpp:(.text+0x111): referência indefinida para `Grade::~Grade()'
collect2: error: ld returned 1 exit status
 

 

Postado

.HPP

:

#ifndef GRADE_HPP
#define GRADE_HPP
using namespace std;
class Grade {
    private:
        char **Matriz;
        int CoordenadaX;
        int CoordenadaY;
        int NumLinha;
        int NumColuna;

    public:
        Grade();
        Grade(int NumLinha, int NumColuna);
        ~Grade();
        int getNumLinha();
        int getNumColuna();
        int  getCoordenadaX();
        void setCoordenadaX(int CoordenadaX);
        int  getCoordenadaY();
        void setCoordenadaY(int CoordenadaY);
        void ReviveCelula();
};

#endif


@TYSQUARE89

adicionado 26 minutos depois
#include <iostream>
#include <stdlib.h>
#include "grade.hpp"

Grade::Grade(){
int i;
int j;
NumLinha = 50;
NumColuna = 50;

Matriz =(char**)malloc(NumLinha*sizeof(sizeof(char*)));

for(i = 0; i < NumLinha; i++){

Matriz[i] = (char*)malloc(NumColuna*sizeof(char));

}

for(i = 0;i < NumLinha;i++){

for(j = 0; j < NumColuna;j++){

Matriz[i][j] = '-' ;

}

}

}

 Grade::Grade(int NumLinha , int NumColuna){
int i;
int j;
this->NumLinha = NumLinha;
this->NumColuna = NumColuna;


Matriz =(char**)malloc(NumLinha*sizeof(sizeof(char*)));

for(i = 0; i < NumLinha; i++){

Matriz[i] = (char*)malloc(NumColuna*sizeof(char));

}

for(i = 0;i < NumLinha;i++){

for(j = 0; j < NumColuna;j++){

Matriz[i][j] = '-' ;

}

}

}


Grade::~Grade(){

free(Matriz);

Matriz=NULL;

}

                              
 int Grade::getNumlinha(){

return NumLinha;

}

int Grade::getNumColuna(){

return NumColuna;

}

int Grade::getCoordenadaX(){

return CoordenadaX;

}

void Grade::setCoordenadaX(int CoordenadaX){

this->CoordenadaX = CoordenadaX;

}

 

int Grade::getCoordenadaX(){

return CoordenadaY;

}

void Grade::setCoordenadaY(int CoordenadaY){

this->CoordenadaY = CoordenadaY;

}



 

.CPP

adicionado 27 minutos depois
#ifndef GRADE_HPP
#define GRADE_HPP

using namespace std;

class Grade {

    private:
        char **Matriz;
        int CoordenadaX;
        int CoordenadaY;
        int NumLinha;
        int NumColuna;


    public:

        Grade();
        Grade(int NumLinha, int NumColuna);
        ~Grade();
        int getNumLinha();
        int getNumColuna();
        int  getCoordenadaX();
        void setCoordenadaX(int CoordenadaX);
        int  getCoordenadaY();
        void setCoordenadaY(int CoordenadaY);
        void ReviveCelula();

};




#endif

.HPP

Postado

Então, nesses códigos que você mandou não há erros de duplicação e sim de ortografia, como em:

getNumLinha(HPP) e getNumlinha(CPP)

getCoordenadaY(HPP) e getCoordenadaX(CPP) < duplicado...

  • Curtir 1
Postado

Corrigi isso mas mesmo assim ainda da erro , eu tento compilar so os metodos pra ver se o compilador diz algo , aqui esta os metodos corrigidos 

#include <iostream>
#include <stdlib.h>
#include "grade.hpp"

Grade::Grade(){
int i;
int j;
NumLinha = 50;
NumColuna = 50;

Matriz =(char**)malloc(NumLinha*sizeof(sizeof(char*)));

for(i = 0; i < NumLinha; i++){

Matriz[i] = (char*)malloc(NumColuna*sizeof(char));

}

for(i = 0;i < NumLinha;i++){

for(j = 0; j < NumColuna;j++){

Matriz[i][j] = '-' ;

}

}

}


Grade::Grade(int NumLinha , int NumColuna){
int i;
int j;
this->NumLinha = NumLinha;
this->NumColuna = NumColuna;


Matriz =(char**)malloc(NumLinha*sizeof(sizeof(char*)));

for(i = 0; i < NumLinha; i++){
  Matriz[i] = (char*)malloc(NumColuna*sizeof(char));

}

for(i = 0;i < NumLinha;i++){

for(j = 0; j < NumColuna;j++){

Matriz[i][j] = '-' ;

}

}

}


Grade::~Grade(){

free(Matriz);

Matriz=NULL;

}


int Grade::getNumLinha(){

return NumLinha;

}
                      
 int Grade::getNumColuna(){

return NumColuna;

}

int Grade::getCoordenadaX(){

return CoordenadaX;

}

void Grade::setCoordenadaX(int CoordenadaX){

this->CoordenadaX = CoordenadaX;

}


int Grade::getCoordenadaY(){

return CoordenadaY;

}

void Grade::setCoordenadaY(int CoordenadaY){

this->CoordenadaY = CoordenadaY;

}
                       
void Grade::ReviveCelula()
{
int i;
char Parada;
cout << "Insira as coordenadas inicias" << endl;

do{

while(i < 10)
{

 cout << "Linha: "<< endl;
 setCoordenadaX(CoordenadaX);

 cout << "Coluna: "<<endl;
 setCoordenadaY(CoordenadaY);

if((getCoordenadaX()*getCoordenadaY()) < (NumLinha*NumColuna))
{

 Matriz[getCoordenadaX()][getCoordenadaY()]='+' ;

}else {

cout << "Coordenada invalida" << endl;

}

i++;

}
cout << "Continuar inserindo novas coordenadas?" << endl;
cout << "Digite S ou N" << endl;
cin >> Parada ;

}while(Parada !='N');

}

       

.CPP  

 

e  o erro que aparece e esse :

 

/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o: na função `_start':
(.text+0x20): referência indefinida para `main'
collect2: error: ld returned 1 exit status

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!