回 帖 发 新 帖 刷新版面

主题:CList派生类如何实现

自定义类: 
class A 

  public: 
    A(); 
    ~A(); 
    int set(A a,int b); 
    void Dosomething(A a,int b,double c,enum d);
  private: 
    int num; 
}; 
如何才能实现类A能继承CList的功能。
类里面的函数如何在CPP中实现。

回复列表 (共3个回复)

沙发

那当然是通过继承哪
class A : public CList
{
};
对于从 MFC 的类继承的新类,建议通过类向导来创建。
还有,你的那两个成员函数有问题啊~~
[quote]
int set(A a,int b); 
void Dosomething(A a,int b,double c,enum d);[/quote]
参数应该只能是本类对象的引用或指针,而不能是对象。

板凳

如果按照你的意思,利用CList组建的链表类,具体的实现是又很大限制的咯。
我自己去试试看。

3 楼

我按照如下试了。
int A::Set(int i)
{
   num=i;
}
int A::GetNum()
{
 return num;
};
CList<A,A&> myclist;
void function()
{
   A a;
  for(i=0;i<5;i++)
  { a.setnum(i);}
   return 1;
}

void show()
{
      POSITION pos = myclist.GetHeadPosition();

    for (int i=0;i < myclist.GetCount();i++)
{
   str.Format("%i",myclist.GetNext(pos).GetNum());
       //TRACE("%s\r\n", (LPCSTR) myList.GetNext(pos));
    m_listbox.AddString(str);
}
输出结果是:0,1,2,3,4
和自己设想的是一样的。

我来回复

您尚未登录,请登录后再回复。点此登录或注册