template<class T> class array
{
public:
// Member Functions
// Initialize array with a value
virtual void initialize(T value) = 0;
// Set an element at i-th position
virtual void set(T object, unsigned i) = 0;
// Get the element at i-th position
virtual T get(unsigned i) const = 0;
// Change array dimension
virtual void resize(unsigned dim) = 0;
// Return dimension
virtual unsigned dim( ) const {return dimension;}
// Set default value
virtual void default_v(T def) {def_v = def;}
// Get default value
virtual T default_v( ) const {return def_v;}
protected:
// Attributes (Data)
unsigned dimension; // # elements
T def_v; // default value
T* memory; // pointer to memory space
};
template<class T> class farray : virtual public array<T>
{
public:
// Constructors
farray( );
// Member Functions
// Initialize array with a value
void initialize(T value);
// Initialize array with default value
void initialize( );
// Set an element at i-th position
void set(T object, unsigned i);
// Get the element at i-th position
T get(unsigned i) const;
// Change array dimension
void resize(unsigned dim);
};
O trecho de programa acima foi escrito em C++, padrão ANSI/ISO C++.
Com base nesse trecho de programa, julgue o item a seguir.
Na linha, “array” é uma classe de objetos que pode ser instanciada por meio do construtor padrão do C++.