class Object
{
public:
Object() {}
};
template <class T>
class Reg : public Object
{
T val,val_new;
public:
Reg(T const& initval)
: val( initval )
{}
};
В стандарте C ++ нет super
.Некоторые компиляторы предлагают его как расширение языка, но в стандартном C ++, если вы хотите общее имя для базового класса «the», вам нужно typedef
.Например, в классе Reg
вы можете typedef Object Base;
.
Конструкция : val( initval )
представляет собой список инициализатора конструктора , где по существу вы вызываете конструкторы членов и базовых классов, избегая использования по умолчанию.Конструкция.
Наконец, const&
, , передаваемый по ссылке , позволяет избежать трудоемкого и занимающего память копирования фактического аргумента;это еще одна вещь, отличная в C ++ (по сравнению с Java, который, я предполагаю, вы пришли).