主题:CList派生类如何实现
yunzhongya
[专家分:230] 发布于 2008-05-06 16:25:00
自定义类:
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个回复)
沙发
廖增祥 [专家分:3930] 发布于 2008-05-06 18:48:00
那当然是通过继承哪
class A : public CList
{
};
对于从 MFC 的类继承的新类,建议通过类向导来创建。
还有,你的那两个成员函数有问题啊~~
[quote]
int set(A a,int b);
void Dosomething(A a,int b,double c,enum d);[/quote]
参数应该只能是本类对象的引用或指针,而不能是对象。
板凳
yunzhongya [专家分:230] 发布于 2008-05-07 19:41:00
如果按照你的意思,利用CList组建的链表类,具体的实现是又很大限制的咯。
我自己去试试看。
3 楼
yunzhongya [专家分:230] 发布于 2008-05-07 20:58:00
我按照如下试了。
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
和自己设想的是一样的。
我来回复