Analise o trecho de código em linguagem C++.
class Alpha {
private:
char opcao;
public:
virtual void reset(){}
virtual int m1() = 0;
protected:
int nome; };
class Beta : public Alpha{
private:
int saida;
public:
virtual void reset() { this->saida = 10; }
virtual int m1() { this->nome = this->saida; return nome;} };
Sobre o trecho, analise as afirmativas.
I - A atribuição de = 0 ao método m1() da classe Alpha deverá gerar um erro durante a compilação dessa classe.
II - A classe Beta herda os métodos e atributos da classe Alpha, sendo assim, os métodos implementados em Beta poderão acessar tanto o atributo opcao e quanto o atributo nome.
III - O atributo nome foi definido como protected na classe Alpha, o que permite que o método m1() da classe Beta acesse esse atributo sem ocasionar erro na compilação da classe.
IV - A classe Alpha foi definida como abstrata, o que impede que objetos dessa classe sejam instanciados.
Estão corretas as afirmativas