⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nohlista.h

📁 本程序实现了mini pascal的一个编译的总过程。
💻 H
字号:
/********************************************************************
*               MINI-COMPILADOR PARA O MINI-PASCAL                  *
* ----------------------------------------------------------------- *
*      Membros: Anderson de Rezende Rocha - DCC/UFLA                *
*               undersun@comp.ufla.br                              *
*                                                                   *
*               J鷏io C閟ar Alves - DCC/UFLA                        *
*               jcalves@comp.ufla.br                                *
* ----------------------------------------------------------------- *
*          COMPILADORES: Prof. M醨io Luis R. Oliveira               *
********************************************************************/

/*
    OBSERVA钦ES:
        + Utilizada pela lista para se conseguir uma lista din鈓ica
        + O operador '==' DEVE estar definido na classe 'TValor'.
    
    M蒚ODOS
        + clNohLista();           
        + ~clNohLista();
        + clNohLista *Proximo();
        + TValor Valor();
        + TValor *ValorRef();
        + void CopiarValor(const TValor &v); 
        + void Proximo(clNohLista *noh);     
*/

#ifndef CLNOHLISTA_H
#define CLNOHLISTA_H

using namespace std;

// Template para se conseguir criar nohs de lista gen閞icos
template <class TValor>
class clNohLista
{
    public:
        // Construtor padr鉶
        clNohLista();           
        // Destrutor
        ~clNohLista();
        // Refer阯cia para o pr髕imo elemento da lista
        clNohLista *Proximo();
        // Retorna uma c髉ia do valor de um dado noh
        TValor Valor();
        // Retorna uma refer阯cia do valor de um dado noh
        TValor *ValorRef();
        // Copia o valor 'v' para o noh atual
        void CopiarValor(const TValor &v); 
        // Seta o pr髕imo noh do atual noh, montando, assim, a lista
        void Proximo(clNohLista *noh);     
    protected:
        // Refer阯cia para o valor do noh
        TValor *valor;       
        // Referencia para o proximo noh da lista
        clNohLista *proximo;  
};

// Construtor padr鉶
template <class TValor>
clNohLista<TValor>::clNohLista()
{
    valor = NULL;
    proximo = NULL;
}

// Destrutor
template <class TValor>
clNohLista<TValor>::~clNohLista()
{
    if (valor != NULL)
        delete valor;
}


// Retorna uma c髉ia do valor de um dado noh
template <class TValor>
TValor clNohLista<TValor>::Valor()
{
    return *valor;
}

// Retorna uma refer阯cia do valor de um dado noh
template <class TValor>
TValor *clNohLista<TValor>::ValorRef()
{
    return valor;
}

// Refer阯cia para o pr髕imo elemento da lista
template <class TValor>
clNohLista<TValor>* clNohLista<TValor>::Proximo()
{
    return proximo;
}

template <class TValor>
void clNohLista<TValor>::Proximo(clNohLista *noh)
// muda o valor do proximo
{
    proximo = noh;
}

template <class TValor>
void clNohLista<TValor>::CopiarValor(const TValor &v)
// muda o valor do noh
{
     if (valor != NULL)
        delete valor;
    valor = new TValor(v);
}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -