Ainda considerando o trecho de código apresentado, escrito n...
class Porta {
int numero;
public:
Porta(int numero):numero(numero){}
virtual ~Porta(){cout << "Fechar" << "\n";}
virtual void enviar(char) throw (invalid_argument) = 0;
int getNumero() const {return numero;}
};
class Serial:public Porta {
string nome;
public:
Serial(int numero, string nome):Porta(numero), nome(nome){}
~Serial(){cout << "Encerrar" << "\n";}
string getNome() const;
void enviar(char) throw (invalid_argument);
};
inline string Serial::getNome() const {
return nome;
}
void Serial::enviar(char dado) throw (invalid_argument){
if (dado == '0')
throw invalid_argument("Valor nulo");
cout << "Enviar " << dado << "\n";
}