Интересно, что синтаксис выглядит так: T()
. Требуется добавление конструктора копирования.
generic<typename T>
public ref class Class
{
public:
Class() : member(T())
{
}
Class(Class^ c)
{
member = c->member;
}
private:
T member;
};
Редактировать
DOH Это тоже работает (я так долго был в C #, что я забыл, что NULL и 0 - это одно и то же в C ++, поэтому нет необходимости в разных значениях по умолчанию и ссылочных типах):
generic<typename T>
public ref class Class
{
public:
Class() : member(0)
{
}
Class(Class^ c)
{
member = c->member;
}
private:
T member;
};