• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Marino

BST e classes duvida ( again )

2 mensagens neste tópico

#include <iostream>
#include <string>
#include "BST.H"
using namespace std;

class PalavraFreq {
string palavra;
int frequencia; // frequencia = nº de vezes que palavra aparece
public:
PalavraFreq(string p=""): palavra(p), frequencia(0) {}
string getPalavra() const { return palavra; }
int getFrequencia() const { return frequencia; }
void setFrequencia(int f) { frequencia=f; }
bool operator < (const PalavraFreq &pf1) const
{ return palavra < pf1.palavra; }
bool operator == (const PalavraFreq &pf1) const
{ return palavra == pf1.palavra; }
};

class AnaliseTexto {
BST<PalavraFreq> palavras;
public:
void trataTexto(string texto);
int compMedio() const;
string maisFrequente(string pref) const;
void listarEntre(string pal1, string pal2) const;
};

void AnaliseTexto::trataTexto(string texto)
{
     PalavraFreq NOT_FOUND;
     
    int pos=texto.find(" ");
    while(pos!=string::npos) 
    {
    string palavra = texto.substr(0,pos);
           PalavraFreq aux = palavras.find(palavra);
           if(aux==NOT_FOUND)
               palavras.insert(palavra);
           
           else
               aux.setfrequencia(++getfrequencia());
               
    texto = texto.substr(pos+1);
    pos=texto.find(" ");
    }
}

Pll basicamente estou com uma duvida estupida  :-[

Pll desta maneira estou a usar a variavel BST<PalavraFreq> palavras na funçao tratatexto, Mesmo ela sendo PRIVADA?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ouch. Dói ver isso sem estar identado...

O campo palavras é privado, mas o método tratatexto faz parte da classe e tem acesso a todos os campos e métodos da classe, públicos, protegidos e privados. Só as funções externas à classe é que não têm acesso directo aos seus campos e métodos privados.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora