class listaSequencial
{
public:
// Criar a lista vazia de tamanho n
bool criarLista(int n)
{
int lista[n];
returntrue;
}
// Chamar método para adicionar um elemento
void adicionar(int elemento)
{
l.adicionar(lista,elemento);
}
private:
Lista l;
};
class Lista
{
public:
// Construtor para inicializacao do atributo qtdElementos
Lista()
{
qtdElementos = 0;
}
// Adicionar um elemento ao final da lista
void adicionar(int lista[], int elemento)
{
lista[qtdElementos++] = elemento;
}
private:
int qtdElementos;
};
The error message:
19 `Lista' does not name a type
In member function `void listaSequencial::adicionar(int)':
15 `l' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
15 `lista' undeclared (first use this function)
Ok, thanks, it seems that it worked. But now I have another question, typical beginner. I want to create a array, inside the class dynamically. The method criarLista do it to me with int lista[n]; but the function below, void adicionar(int elemento), when I try to use the array created l.adicionar(lista,elemento); returns me an error saying `list 'undeclared (first use this function).
class Lista
{
public:
// Construtor para inicializacao do atributo qtdElementos
Lista()
{
qtdElementos = 0;
}
// Adicionar um elemento ao final da lista
void adicionar(int lista[], int elemento)
{
lista[qtdElementos++] = elemento;
}
private:
int qtdElementos;
};
class listaSequencial
{
public:
// Criar a lista vazia de tamanho n
bool criarLista(int n)
{
int lista[n];
returntrue;
}
// Chamar método para adicionar um elemento
void adicionar(int elemento)
{
l.adicionar(lista,elemento);
}
private:
Lista l;
};
But I can't declare a array as a data member because I don't know - yet - the array length.
What is the solution? Understand the logic of my program?
A more general question. How to make a list then? I am studying data structure and want to make a list of some common operations such as add, delete and get information and to verify whether the same is empty or full, among others.
class Lista
{
public:
// Construtor para inicializacao do atributo qtdElementos
Lista()
{
qtdElementos = 0;
}
// Adicionar um elemento ao final da lista
void adicionar(int lista[], int elemento)
{
lista[qtdElementos++] = elemento;
}
private:
int qtdElementos;
};
class listaSequencial
{
public:
// Criar a lista vazia de tamanho n
bool criarLista(int n)
{
lista(n) = newint();
returntrue;
}
// Chamar método para adicionar um elemento
void adicionar(int elemento)
{
l.adicionar(lista,elemento);
}
private:
Lista l;
int * lista;
};