Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Как унаследовать List<T>


Автор: Bondik 17.12.2008, 16:44
Надо сделать класс унаследованный от List<T>

Автор: Earnest 17.12.2008, 17:25
Ну и сделай - в чем вопрос-то?

Автор: Bondik 17.12.2008, 18:14
Цитата(Earnest @ 17.12.2008,  17:25)
Ну и сделай - в чем вопрос-то?

 smile   smile 

Хорошо, для простоты
Код

#pragma once
generic<typename T>

public ref class d_List : public System::Collections::Generic::List<T>
{
public:
     d_List();
};


Код

#include "StdAfx.h"
#include "d_List.h"

d_List::d_List() : List()
{
}


пишет 
Pcad.obj : error LNK2020: unresolved token (06000005) d_List`1::.ctor
Pcad.exe : fatal error LNK1120: 1 unresolved externals

Автор: Earnest 17.12.2008, 18:43
Ну и причем здесь MFC, и вообще c++? На каком языке пишем-то? 

Автор: Bondik 17.12.2008, 22:08
MFC здесь не причем. Это .net и С++.

И где ж тогда надо было создавать тему про .net ?  smile

Автор: DoZENT 29.12.2008, 10:43
Код

#include "StdAfx.#"
#include "d_List.h"

d_List::d_List() : List()
{
}

если это с#, то я морковка

Автор: Partizan 29.12.2008, 10:48
DoZENT, это С++.NET....никто про C# ничего не говорил...

Автор: DoZENT 29.12.2008, 11:46
чего-то я недопонимаю. в .net можно использовать c++ и mfc??

Автор: Partizan 29.12.2008, 11:50
DoZENT, MFC тут вообще не при делах...(но при особом изврате можно и MFC прицепить  smile )

.NET - это всего лишь библиотека классов...ну и среда выполнения ещё...

А язык может быть вообще любой....лишь бы в IL можно было скомпилять...
С++.NET - один из языков поддерживающих .NET

Автор: Veitmen 29.12.2008, 12:00
Если делать по аналогии с C# то ты ведь должен определить дженерик тип. Это можно сделать указав и класса наследника дженерик, либо указать дженерик уже самому у листа.
1. Передаем дженерик в классе наследнике
Код

class MyList<T> : List<T>

2. Указываем тип дженериковский при наследовании:
Код

class MyList : List<int>

Т.е. ты забыл про дженерик...

Автор: Alekz 29.12.2008, 12:04
Код

public class myList<T> : List<T>
    { 

    }

    public class myListOfObj : List<Object>
    {

    }


Не совсем уверен, как это будет на С++, но рефлектор говорит
Код

public __gc class myList<T> : public List<T>
{
    public: myList();
};

 public __gc class myListOfObj : public List<Object __gc*>
{
    public: myListOfObj();
};


только заметил, что Veitmen опередил )))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)