Как создать базовый класс generic c в производном классе в C ++ / CLI? - PullRequest
2 голосов
/ 26 апреля 2020

Я новичок в дженериках. Мой производный класс должен передать тип generi c в базовый класс. Самому моему производному классу не нужен тип generi c.

class A { public: }; 

generic < typename T>
public ref class Base
{
public:
    T m_Instance;

    void Hello()
    {
        cout << "Base::Hello() called" << endl;
    }

    T GetInstance()
    {
        return m_Instance;
    }

};


public ref class Derived :  Base <A>
{
public:

    void Print()
    {
        cout << "Derived::Print called" << endl;

        Hello();
    }
};

Как вы можете видеть, мой производный пример знает, что такое тип generi c для базового класса, но я не знаю как оно может быть получено из него и доказать тип?

Приложение выглядит так, и, как вы можете видеть, сам класс Derived не использует тип generi c извне.

int main(cli::array<System::String ^> ^args)
{
    Derived d;

    d.Print(); 
}
...