Ir ao conteúdo
  • Cadastre-se
llamalopes

Vetor de ponteiros do tipo de uma classe

Recommended Posts

Olá, eu tenho que fazer um programa que simula o tempo que uma informação demora para percorrer um circuito integrado.

Para isso eu recebo uma netlist, que é a descrição de como é o meu circuito integrado, e devo a partir dessas informações criar o circuito atraves de uma lista/arvore.

O complicador deste programa é que cada celula pode ter varios vetores sendo apontado para ela e pode apontar para varias celulas diferentes... então pensei em fazer o last e o next (ponteiros que apontam para a proxima celula e para a celula anterior) como sendo um vetor de ponteiros.

Bom nao sei porque mas o programa nao funciona, aqui esta a parte do codigo

celula.h

#include <cstdlib>
#include <iostream>

using namespace std;

#ifndef CELULA_H
#define CELULA_H


class celula {
public:
int atraso_total; //maior tempo que o dado demora para percorrer a primeira celular até a saida da celula
int atraso_cell; // tempo que o dado demora para percorrer a celula
int num_in; //numero e entrada da celula
int num_out; //numero de saidas da celula
char nome_cell[10];//nome da celula
char nome_in[5]; //nome da entrada da celula DEVO MUDAR PARA UMA MATRIZ POIS PODE TER MAIS DE UMA ENTRADA
char nome_out[5]; //nome da saida
celula (void); //função q cria a celula
//int atraso_cell
celula (int); //função que defini o valor do atraso da celula
//int num_in, int num_out, int atraso_cell, char nome_in[5], char nome_out[5], char nome_cell[10]
int set (int, int, int, char[5], char[5], char[10]);//função que define os valores da celula
//int atraso (void);
//DECLARAÇÃO NAO ESTÁ CORRETA
celula **next; //aponta para a proxima celula
celula **last; //aponta para a celula passada}
};


#endif


celula.cpp

#include <cstring>
#include "celula.h"

celula :: celula () {
*next = NULL;
*last = NULL;
} // Construtor padrão

celula :: celula (int _atraso_cell, int _num_in) { // Constroi a celula recebendo de parametro o valor do atraso da celula
atraso_cell = _atraso_cell;
*next = NULL;
*last = NULL;
}

int celula:: set (int _num_in, int _num_out, int _atraso_cell, char _nome_in[5], char _nome_out[5], char _nome_cell[10]){
*cell[] = new celula;//cria nova celula

cell[]->num_in = _num_in; //redireciona os valores recebidos para as variaveis da celula - numero de entradas
cell[]->num_out = _num_out; //numero de saidas
cell[]->atraso_cell = _atraso_cell; //atraso da celula
cell[]->nome_in[5] = _nome_in[5]; //nome da entrada
cell[]->nome_out[5] = _nome_out[5]; //nome da saida
cell[]->nome_cell[10] = _nome_cell[10]; //nome da celula
cell[]->atraso_total = -1;
}

Não sei o que está errado... eu só fiz aulas de programação em C e já faz um tempo, então estou com dificuldade de achar os erros.

Brigada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não consegui fazer funcionar, mas vou postar os erros, quem sabe alguém vem aqui e consegue analisá-los :)

error: prototype for 'celula::celula(int, int)' does not match any in class 'celula'|

|error: candidates are: celula::celula(const celula&)|

error: celula::celula(int)|

|error: celula::celula()|

In member function 'int celula::set(int, int, int, char*, char*, char*)':|

|error: 'cell' was not declared in this scope|

error: expected primary-expression before ']' token|

error: expected primary-expression before ']' token|

error: expected primary-expression before ']' token|

|error: expected primary-expression before ']' token|

error: expected primary-expression before ']' token|

error: expected primary-expression before ']' token|

|error: expected primary-expression before ']' token|

error: expected primary-expression before ']' token|

warning: no return statement in function returning non-void|

||=== Build finished: 13 errors, 1 warnings ===|

Compartilhar este post


Link para o post
Compartilhar em outros sites
Natalie, porque você usa **celula next//**celula last na declaração da classe?

Só um ponteiro ja estaria certo?

Não sei, não fiz isso, não sou a criadora desse tópico. Apenas postei os erros ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×